如何使用jQuery选择器选择列表中的所有项目

问题描述 投票:0回答:3

我正在这些行上创建动态列表:

<li class="MainMenuList" data-role=list-divider>
    <li data-icon=check id="1">
        <a name="n1" id="id-1">Text-1</a>
    </li>
    <li data-icon=check id="2">
        <a name="n2" id="id-2">Text-1</a>
    </li>
    <li data-icon=check id="3">
        <a name="n3" id="id-3">Text-1</a>
    </li>
</li>

我如何运行JQuery .each()选择器来访问列表中的所有值。尝试此操作不会产生蚂蚁结果。

$( ".MainMenuList li a" ).each(function( index ) {
    var n1 = $(this).attr('name');
    var n2 = parseInt ($(this).attr('id'));
    alert( index + "-" + n1 + "-" + n2);
});
javascript jquery jquery-selectors
3个回答
1
投票

这是您的代码的jsFiddle

  • 如评论中所述,您的第一个<li>元素应为<ul>
  • 您还应该将<a> id严格地更改为数字(因为您将其解析为整数),或者只是通过(C0]或其他方式检索数字部分)

3
投票

您的HTML无效,外部li应该是ul,它才有效。

substr

此行

<ul class="MainMenuList" data-role=list-divider>
    <li data-icon=check id="1">
        <a name="n1" id="id-1">Text-1</a>
    </li>
    <li data-icon=check id="2">
        <a name="n2" id="id-2">Text-1</a>
    </li>
    <li data-icon=check id="3">
        <a name="n3" id="id-3">Text-1</a>
    </li>
</ul>

与]相同>

var n2 = parseInt ($(this).attr('id'));

并且parseInt将不返回2,它将返回NaN。

您将必须使用正则表达式

var n2 = parseInt("id-2");

或拆分以取出数字

$(this).attr('id').match(/\d+/)[0]

或者您可以仅引用父母的身分证,如果这是一个有效的假设。

$(this).attr('id').split("-")[1]

1
投票

您要在字符串上调用$(this).parent().attr('id') 。如果您知道自己的ID始终为parseInt()格式,则可以这样做

© www.soinside.com 2019 - 2024. All rights reserved.