Хотя я вижу много сообщений об этой общей теме (best way to get child nodes) Я ничего не могу найти относительно итерации и назначения в двухслойных вложенных дочерних элементах. Я видел примеры онлайн-игр, которые вызывают с [] и(). Заранее спасибо.JavaScript, JQuery дочерний узел итерации
Предположим, что у меня есть этот HTML-код и вы хотите, чтобы строка всех имен файлов (исключая путь URL-адреса или расширение файла) внутри «сортируемого» элемента UL.
<ul id="sortable" class="ui-sortable">
<li class="ui-state-default">
<img id="aImg" alt="sortable image" src="images/a.jpg" />
</li>
<li class="ui-state-default">
<img id="bImg" alt="sortable image" src="images/b.jpg" />
</li>
<li class="ui-state-default">
<img id="cImg" alt="sortable image" src="images/c.jpg" />
</li>
</ul>
My JavaScript выглядит следующим образом:
var theImageOrder = "";
var theCounter = 0;
while (theCounter < $('#sortable').children().length)
{
var theImageName = $('#sortable').children(theCounter).children(0).attr("src").toString().substring($('#sortable').children(theCounter).children(0).attr("src").toString().lastIndexOf("/") + 1, $('#sortable').children(theCounter).children(0).attr("src").toString().lastIndexOf("."));
theImageOrder = theImageOrder + theImageName;
theCounter++;
}
Я бы ожидать, что результат будет а, но вместо этого я получаю ааа.
Почему вы не делаете '$ .each()' ?? – karthikr
Вместо '.children (theCounter)', используйте '.children(). Eq (theCounter)', хотя есть гораздо лучшие способы сделать это, чем этот тип цикла – Ian
Я только что сделал jsfiddle сегодня, отвечая на аналогичный вопрос , Проверьте [это] (http://jsfiddle.net/SpYk3/RyYv6/)! Прокрутите мимо гигантского объекта, чтобы увидеть JS, и вы можете получить представление о том, как каждый повторяется через объекты. – SpYk3HH