我需要從列表中選取列表項,然後執行像添加事件處理程序的操作。我可以想到兩種做法。識別列表項索引 - 哪種方法更好?
HTML:
<ul id="list">
<li id="listItem-0"> first item </li>
<li id="listItem-1"> second item </li>
<li id="listItem-2"> third item </li>
</ul>
使用IDs-
for(i=0;i<3;i++) { document.getElementById("listItem-"+i).addEventListener("click",foo,false); }
使用的childNodes屬性 -
for(i=0;i<3;i++) { document.getElementById("list").childNodes[i] .addEventListener("click",foo,false); }
我使用的是第一種方法的原因是,在函數foo,如果我想在該項目位於列表中的索引,我可以通過拆分ID做到這一點 -
function foo()
{
tempArr = this.id.split('-');
index = tempArr[tempArr.length-1]; // the last element in the array
}
我可以沒有想到通過使用第二種方法做到這一點,也就是說,不使用id命名方案。
的問題:
- 我要如何使用第二種方法或任何更好的方法
- 是否有一些非常壞的影響後的第一個方法的指數?
對於將空白視爲文本節點的瀏覽器,第一種方法將失敗。你並沒有真正解釋你爲什麼關心*索引*,所以我不打算推測是否有更好的解決方案。 – Shog9 2008-11-15 15:46:21