Я создаю динамический список в этих строках:
<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);
});
Может кому-то помочь.
благодаря
Здесь jsFiddle вашего кода
<li>
должен быть <ul>
id
<a>
на строго число (поскольку ваш синтаксический анализ его как целое число), либо просто получить номер части (через substr
или что-то еще)Ваш 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]
или вы можете просто ссылаться на идентификатор родителей, если это допустимое предположение.
$(this).parent().attr('id')
Вы вызываете parseInt()
в строке. Если вы знаете, что ваши идентификаторы всегда будут в форме id-N
вы можете просто сделать
var id = $(this).attr("id");
var n2 = parseInt(id.split("-")[1]);