我正在这些行上创建一个动态列表:
<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);
});
有人可以帮忙。
由于
答案 0 :(得分:3)
你的HTML无效,外面的li应该是ul才有效。
<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'));
与
相同var n2 = parseInt("id-2");
和parseInt不会返回2,它将返回NaN。
您必须使用正则表达式
$(this).attr('id').match(/\d+/)[0]
或拆分以取出数字
$(this).attr('id').split("-")[1]
或者如果这是一个有效的假设,你可以引用父母id。
$(this).parent().attr('id')
答案 1 :(得分:1)
你在字符串上调用parseInt()
。如果您知道您的ID始终采用id-N
形式,那么您可以
var id = $(this).attr("id");
var n2 = parseInt(id.split("-")[1]);
答案 2 :(得分:1)
以下是您的代码的jsFiddle
<li>
元素应为<ul>
<a>
id
更改为严格的数字(因为您将其解析为整数)或只是检索数字部分(通过substr
或其他内容)< / LI>