获取列表项的值可以得到0

时间:2015-09-23 19:21:27

标签: javascript jquery html

首先,我有这个无序列表:

<ul class="carl">
    <li id='2' value='test'>One</li>
    <li>Two</li>
    <li>Three</li>
</ul>

我可以通过这样的方式通过jQuery访问它:

alert($('.carl li')[0].id);

它工作正常,id被正确警告,但如果我这样做:

alert($('.carl li')[0].value);

然后我得到0,即使我在元素上设置了值。

导致此行为的原因是什么?

4 个答案:

答案 0 :(得分:2)

已经有一些正确的答案,但我想添加一个更简短,更简洁的方法来做同样的事情:

alert($('.carl li').eq(0).attr("value"));

现场演示:

&#13;
&#13;
alert($('.carl li').eq(0).attr("value"));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="carl">
    <li id='2' value='test'>One</li>
    <li>Two</li>
    <li>Three</li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您应该使用attr()方法来读取属性:

alert($('.carl li').eq(0).attr('value'));

答案 2 :(得分:1)

var valu = $('.carl li')[0];
alert($(valu).val());

答案 3 :(得分:0)

<li>没有声明的HTML5属性value,请执行以下操作:alert($('.carl li').eq(0).text());

但您也可以为有效的HTML5执行此操作:

//HTML
<ul class="carl">
  <li id='2' data-value='test'>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>

//JAVASCRIPT
alert($('.carl li').eq(0).attr('data-value'));

fiddle demo