亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

子節點數組不具有數組的特性?,如arr.shift()這個方法?

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>無標題文檔</title>

</head>


<body>

<div id="content">

? <h1>html</h1>

? <h1>php</h1>

? <h1>javascript</h1>

? <h1>jquery</h1>

? <h1>java</h1>

</div>


<script type="text/javascript">

function clearText() {

? var content=document.getElementById("content");

? var otest=content.childNodes;

? //var n=otest.length;

? ? //for(i=0;i<n;i++){

? ? //實現點擊一次,只刪除一個節點的效果

? ? if(otest[0].nodeType==1){

? ? ? content.removeChild(otest[0]) ??

? ? }else{

? ? ? otest.shift();//這個方法不行,是不是意味著子節點數組不具有數組的特性?,如arr.shift()這個方法?

? ? ? content.removeChild(otest[0]);

? ??

? ? }

? ? ?

? ? //document.write(renode.innerHTML+"<br>");

? ? //}

??

}

</script>


<button onclick="clearText()">清除節點內容</button>




</body>

</html>


正在回答

5 回答

我覺得可以這么理解。更準確的說它和數組碰巧都有length屬性,而不是說集合有數組的length屬性。var str="test";test.length==4. 你看,字符串也有length屬性,字符串并不是數組,length屬性也不是數組獨有的。

0 回復 有任何疑惑可以回復我~
#1

Dberglas 提問者

這樣比較好理解
2016-07-21 回復 有任何疑惑可以回復我~

你看看你分號是不是打錯了要在英文狀態下打js。

0 回復 有任何疑惑可以回復我~

這是Chrome debug tool 的運行結果,相信看了你就明白了:

var?div=document.getElementById("container")
var?children=div.childNodes
/*以下代碼表明children?對象的構造函數是NodeList,而arr對象的構造函數是Array。
也就是說arr是數組而children不是*/
children.constructor
NodeList()?{?[native?code]?}
var?arr=[1,1,1]
arr.constructor
Array()?{?[native?code]?}

如果你要刪除children的第一個對象,直接children[0].remove() 即可

0 回復 有任何疑惑可以回復我~
#1

Dberglas 提問者

它是一個集合,具有數組的個別特性,但不是數組,是這樣嗎
2016-07-18 回復 有任何疑惑可以回復我~

你可以用console.log()這個函數打印出來,在控制臺查看其結構合數組有什么不同

0 回復 有任何疑惑可以回復我~

childNodes 屬性,標準的,它返回指定元素的子元素集合,包括HTML節點,所有屬性,文本,它并不是數組


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468834    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

子節點數組不具有數組的特性?,如arr.shift()這個方法?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號