1

リストアイテムの値を読み取り、スパンに書き込みたい。
リストが次のようになるように:

  • 私の最初のアイテム(1)
  • 別の項目(2)
  • 次の項目(3)

  • 私の最初のアイテム(a)
  • 別の項目(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>

助けてください

ありがとうございました

4

1 に答える 1

4

引用符は文字列の引用符と一致しないため、オブジェクトとして' + $(this).attr('value') + 'ではなく文字列として分類されます$(this).attr('value')

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

また、そのような値を見つける必要はありません。あなたはすでに何が何であるかを知っているので、そこからすぐにthisできます.findspan

さらに、アンカー要素にはvalue属性がないため、この HTML は無効です。data-valueHTML5 に準拠するように変更する必要があります。

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

-- デモを見る --

于 2012-04-13T14:17:03.943 に答える