怎么點擊第一下沒有反應,然后再點擊一下刪除了3個,然后再點擊依次刪除一個
<!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");
? for(i=0;i<content.childNodes.length;i++)
? {
? ? ? var x=content.removeChild(content.childNodes[i]);
? ? ? x=null;
? }
}
</script>
<button onclick="clearText()">清除節(jié)點內(nèi)容</button>
2016-02-17
i值只是代表循環(huán)的次數(shù),并不參與子元素的遍歷;每次做刪除操作的時候,只要刪除第一個節(jié)點就可以了。
2016-02-17
沒圖沒真相,畫個圖驗證一下,分分鐘搞定,說了一大堆。畫圖之后總結(jié)一句:removeChild會刪除對應位置的節(jié)點并且進行重新索引(也就是按照0、1、2.....的順序),結(jié)果導致長度和刪除節(jié)點的位置變化。
所以始終刪除第一個或者最后一個才沒有問題。否則就會出錯:
始終刪除第一個:
nodel=content.childNodes.length
??for(i=0;i<nodel;i++)??{ ?
??????var?x=content.removeChild(content.childNodes[0]); ?
???}
囧,說了半天也不知道用什么畫圖,還是在筆記本上面畫的。。。
2016-01-18
果然還是數(shù)組長度問題,本以為在循環(huán)里會很方便的表示長度,卻忽略了一增一減的問題,棒棒噠!
2015-12-09
點擊第一次,刪除3個;同理,點擊第二次,只刪除1個;再點擊一次,刪除最后1個(也是只刪除一個)。所以事實上一共是需要調(diào)用3次函數(shù)才刪除完數(shù)據(jù)
2015-10-28
for循環(huán)里面為什么非要寫:
不能直接寫成:
嗎?
2015-10-08
馬馬馬!果然老師知道問題所在,我還正納悶怎么要點擊好幾下!??!
2015-09-24
倒序刪除:
function clearText() {
? var content=document.getElementById("content");
? for(i=content.childNodes.length-1;i>0;i--){
? ? var u = content.childNodes[i];
? ? if(u && u.nodeType==1){
? ? ? ? content.removeChild(u);
? ? ? ? console.log(u);
? ? ? ? break;
? ? }
? }
}
順序刪除:
function clearText() {
? var content=document.getElementById("content");
? for(i=0;i<content.childNodes.length;i++){
? ? var u = content.childNodes[i];
? ? if(u && u.nodeType==1){
? ? ? ? content.removeChild(u);
? ? ? ? console.log(u);
? ? ? ? break;
? ? }
? }
}
2015-09-09
好膩害
2015-08-09
解釋的好清楚,厲害
2015-08-07
為什么第一次點沒反應呢 還是沒懂 ?