代码之家  ›  专栏  ›  技术社区  ›  Corey Downie

jQuery和.attr('value')有问题

  •  1
  • Corey Downie  · 技术社区  · 15 年前

    我有一个列表,每个列表项上都有一个值,如下所示:

    <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');
    

    $('li:first').attr('Value'); //notice capital V
    

    这将返回正确的值“red”。为了确保我没有发疯,我尝试了更多

    $('li:first').attr('vAluE');
    $('li:first').attr('vaLue');
    $('li:first').attr('VALUE');
    

    -编辑-

    4 回复  |  直到 15 年前
        1
  •  3
  •   jay    15 年前

    值仅在有序列表中使用,如下所示:

    <ol>
      <li value="5">Item One</li>
      <li value="10">Item Two</li>
    </ol>
    

    这将如下所示:


    10项目二

    这可能就是jQuery表现得很有趣的原因。

        2
  •  2
  •   Joel    15 年前

    http://dev.jquery.com/ticket/4160

    总之:

    决议 无效的
    在HTML4中,li的value属性提供了有序列表编号:

    http://www.w3schools.com/tags/att_li_value.asp

    <li id="arf" value="dog"></li>
    alert(document.getElementById("arf").value);

        3
  •  0
  •   ceejayoz    15 年前

    @杰罗斯的解释在我看来似乎是合理的。有什么理由你不能改变吗 value="" val=""

        4
  •  0
  •   Jason Aller    15 年前

    value 贬值为 li 和用于设置列表项的编号。使用另一个名字是有效的。