2
我想讀取div的innerHTML中的元素,但似乎正在讀取替代元素。JavaScript:無法讀取innerHTML內容中的所有元素
代碼塊:
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
var tdiv=document.createElement("div");
tdiv.innerHTML="<span>a1</span><span>a2</span><span>a3</span><span>a4</span><span>a5</span>";
var cn=tdiv.getElementsByTagName("*");
var len=cn.length;
console.log("length: "+len);
console.log("tdiv len: "+tdiv.getElementsByTagName("*").length);
for(var i=0;i<len;i++){
if(cn[i]){
console.log(i+": "+cn[i].nodeName+": "+cn[i].tagName);
document.body.appendChild(cn[i]);
}
}
</script>
</body>
</html>
輸出: a1a3a5
注: A2和A4失蹤。 我曾嘗試在所有瀏覽器中使用childNodes
和getElementsByTagName("*")
,IE,FF,Chrome,Opera,Safari和我看到相同的行爲。
當我在所有跨度之間添加一個空白時,所有元素都被讀取。這是預期的行爲嗎?如果是這樣,爲什麼?
謝謝,我通過在for循環中添加了i--和len--來糾正代碼,現在每個元素都被添加到body中。再次感謝。!! – kcak11