我有一個div,並在其中一些項目的清單列表的最簡單方法:的Javascript:使元素
<div id="myDiv">
<ul>
<li><a>Item 1</a></li>
<li><a>Item 2</a></li>
<li><a>Item 3</a></li>
</ul>
我怎麼能輕易做出的Javascript數組的「a」元素知道物品的數量可能會改變?
我有一個div,並在其中一些項目的清單列表的最簡單方法:的Javascript:使元素
<div id="myDiv">
<ul>
<li><a>Item 1</a></li>
<li><a>Item 2</a></li>
<li><a>Item 3</a></li>
</ul>
我怎麼能輕易做出的Javascript數組的「a」元素知道物品的數量可能會改變?
如果你想有一個靜態列表:
var mylist = $('#myDiv > ul > li > a').toArray();
但是你寫「...知道數字o f項目可能會改變「。如果這意味着您需要更新DOM更改的「實時列表」,請執行以下操作:
var mylivelist = document.getElementById("myDiv")
.getElementsByTagName("a");
此列表將在添加或刪除項目時更新。它假定<div>
中沒有其他<a>
元素。如果有,你需要調整。
如果你使用jQuery那麼它的
$('#myDiv a')
如果沒有jQuery的則只是這
document.getElementById('myDiv').getElementsByTagName('a')
儘管兩種方法都不返回數組。 –
的確,jquery沒有,但是你可以在它的末尾粘貼.toArray()。 –
第二個也不是,它是一個'DOMNodeList'。 –
在普通的舊的JavaScript(無jQuery的需要):
var myDiv = document.getElementById('myDiv');
var allAnchors = myDiv.getElementsByTagName('a');
for (var i = 0; i < allAnchors.length; i++) {
//do something with each allAnchors[i] node
document.write(allAnchors[i].innerHTML + '<br />');
}
_「知道項目的數量可能會改變」 _ - 你的意思是要在陣列自動更新,如果錨元素被添加或刪除頁面加載後?或者僅僅是你事先不知道有多少? – nnnnnn
該頁面可能會向此列表中添加更多元素 – Flynn