所以我有一個非常簡單的HTML:jQuery的ATTR返回0,而不是價值
<ul>
<li value="test">test</li>
</ul>
這jQuery腳本
alert($("li").attr("value"));
它應該返回test
但它返回0,爲什麼會出現這種情況?
所以我有一個非常簡單的HTML:jQuery的ATTR返回0,而不是價值
<ul>
<li value="test">test</li>
</ul>
這jQuery腳本
alert($("li").attr("value"));
它應該返回test
但它返回0,爲什麼會出現這種情況?
如果你想文本返回L1標籤內,則:
alert($("li").text());
您不能使用「價值」屬性(在「值」屬性的L1標籤只能是數字)。其重命名爲數據值:
alert($("li").attr("data-value"));
低調地,您的選擇器正在捕獲您擁有的每個li
元素。您可能想讓選擇器更具體。對於第一個<li>
你可以使用 -
$('li:first').attr('value');
使用的id
屬性將是一件好事。
這裏還需要注意的一點是,您正試圖提取名爲value的屬性的值,而不是元素中的實際文本內容。如果你想要屬性值,那麼你在正確的軌道上。如果您想要嘗試使用text()
或html()
的內容。
如果您想要處理多個元素,您可能需要考慮使用$.each
函數。
var liValues = [];
$.each('li',function(index,value){
liValues.push(value.attr('value'));
});
不起作用,看看http://jsfiddle.net/SvA8k/ – Linas
看來這是行不通的,因爲value
根本就不是一個li
元素的有效屬性。正如你可以看到this example改變屬性的名稱爲rel
使你的代碼工作(雖然我不認爲rel
是有效的或奇怪)。
您可能想考慮將這些數據存儲在不同的地方。也許使用data-*
屬性。
<ul>
<li data-value="test">test</li>
</ul>
alert($("li").data("value"));
沒有,我想屬性 – Linas
更新我的回答 –
現在的作品,但我不知道爲什麼'value'不允許 – Linas