我有一个列表,每个列表项都有一个值,如下所示:
<ul>
<li value='red'>red</li>
<li value='grn'>green</li>
<li value='prp'>purple</li>
<li value='blu'>blue</li>
</ul>
我需要检索列表项的值,因此转向jQuery(1.3.2):
$('li:first').val();
这会引发javascript错误。我在这里宽恕jQuery,因为li不是一个表单元素,我只是按照我所说的“艰难的方式”来做:
$('li:first').attr('value');
这不会引发错误,但无论我匹配哪个元素,它都会返回'-1'。显然,-1不是任何元素的值。摆弄几分钟以确保我拼写正确的一切后,我一时兴起尝试
$('li:first').attr('Value'); //notice capital V
这将返回'red',正确的值。为了确保我不疯狂,我再试一次
$('li:first').attr('vAluE');
$('li:first').attr('vaLue');
$('li:first').attr('VALUE');
只要您不使用小写的“值”,似乎每个混合大小写的组合都有效。如果我将我的属性重命名为“value”(非有效的html)以外的任何内容,它的工作正常,但如果可以的话,我会尽快保持它的有效性。有没有理由jQuery表现得像这样,或者我应该认为它是一个错误?
CNC中 我意识到value属性已经在li元素上折旧了。我遇到的真正问题是,不管它是否被折旧,我实际上使用了一个名为'value'的属性,并要求jQuery告诉我它的价值。它错误地返回-1。
答案 0 :(得分:3)
值仅在列表中使用,如下所示:
<ol>
<li value="5">Item One</li>
<li value="10">Item Two</li>
</ol>
这将显示如下:
5。第一项
10。第二项
这可能是jQuery表现得很有趣的原因。
答案 1 :(得分:2)
这可能与此有关吗? http://dev.jquery.com/ticket/4160
总结:
分辨率设置为无效
在HTML4中,li的value属性为您提供了有序列表编号:http://www.w3schools.com/tags/att_li_value.asp
所以原因在于jQuery之外,你可以从这个例子看到它:
<li id="arf" value="dog"></li>
alert(document.getElementById("arf").value);
答案 2 :(得分:0)
value=""
更改为val=""
的任何原因?
答案 3 :(得分:0)
value
折旧 li
,用于设置列表项的编号。使用其他名称有效。