2012-04-13 183 views
1

我想讀出列表項的值並將其寫入跨度。
這樣的名單如下: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

回答

4

你的引號不匹配字符串引號,所以它的分級' + $(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

大家好,歡迎來到StackOverflow。如果庫爾特的回答對你有幫助,請保持好心情,並用鉤子將他的答案標記爲「正確」。謝謝。 – 2012-04-13 14:29:07

+1

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