雖然我看到很多關於這個總體主題(best way to get child nodes)的帖子,但我找不到任何關於迭代和分配在兩層嵌套的孩子。我在網上看到了一些使用[]和()的孩子的例子。提前致謝。JavaScript,JQuery的子節點迭代
我們假設我有這個HTML,並且需要一個包含「可排序」UL元素內所有文件名(不包括URL路徑或文件擴展名)的字符串。
<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>
我的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++;
}
我預計產出將是ABC,而是我得到AAA。
爲什麼不做''.each()'? – karthikr
除了'.children(theCounter)',使用'.children()。eq(theCounter)'',雖然有很多更好的方法可以做到這一點比這種類型的循環 – Ian
我剛剛做了一個jsfiddle回答了類似的問題。檢查[this](http://jsfiddle.net/SpYk3/RyYv6/)了!滾動瀏覽巨型對象以查看JS,並且可以更好地瞭解每個對象如何遍歷對象。 – SpYk3HH