Jquery我做错了什么?

问题描述:

我想读出列表项的值并将其写入跨度。
这样的名单如下:Jquery我做错了什么?

  • 我的第一个项目(1)
  • 其他项目(2)
  • 下一个项目(3)

  • 我的第一个项目(一)
  • 另一个项目(b)
  • 下一个项(c)

但我不找到错误:

<div id="Listgroup"> 
    <ul id="list1"> 
     <li><a href="" value="1">my first item<span></span></a></li> 
     <li><a href="" value="2">another item<span></span></a></li> 
     <li><a href="" value="3">next item<span></span></a></li> 
    </ul> 
<br> 
    <ul id="list2"> 
     <li><a href="" value="a">my first item<span></span></a></li> 
     <li><a href="" value="b">another item<span></span></a></li> 
     <li><a href="" value="c">next item<span></span></a></li> 
    </ul> 
</div> 

<script> 
$(function(){ 
$("li a").each(function(idx, item){ 
    $("span", "li a[value|=' + $(this).attr('value') + ']") 
     .html(" (" + $(this).attr('value') + ")"); 
}); 
}); 
</script> 

请帮助

谢谢

+0

什么错误信息你好吗? – 2012-04-13 14:17:17

+0

[tag:list] *特别说明在描述中它不适用于HTML列表。 – 2012-04-13 14:25:57

你的引号不匹配字符串引号,所以它的分级' + $(this).attr('value') + '作为一个字符串,而不是$(this).attr('value')作为对象

$("span", "li a[value|=" + $(this).attr('value') + "]") 

而且,你并不需要找到像该值。你已经知道this是什么,所以你可以从那里只需findspan

此外,锚元素没有value属性,使得这个HTML无效。你应该将其更改为data-value这将使它符合HTML5:

$(function(){ 
$("li a").each(function(idx, item){   
    $(this).find("span").html(" (" + $(this).data("value") + ") ");  
}); 
}); 

-- SEE DEMO --

+0

你好Curt,谢谢你的快速回答。 – Newbie 2012-04-13 14:25:22

+0

大家好,欢迎来到*。如果库尔特的回答对你有帮助,请保持好心情,并用钩子将他的答案标记为“正确”。谢谢。 – 2012-04-13 14:29:07

+1

@ jfriend00'this.value'和'.val()'是否适用于锚元素? – Curt 2012-04-13 14:32:16