關(guān)于刪除一行的實(shí)現(xiàn),我這個(gè)點(diǎn)擊一下刪除一行在刪除最后一行時(shí)不知道問什么要點(diǎn)擊2次,不知道哪位大神能解答一下?
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>無標(biāo)題文檔</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 mynode=document.getElementById("content");
for(var i=mynode.childNodes.length-1;i>=0;i--)
{
var x=mynode.removeChild(mynode.childNodes[i]);
}
}
? ??
function clearone(){
var mynode=document.getElementById("content");
//此處用到的是繼續(xù)循環(huán):continue
for(i=0;i<mynode.childNodes.length;i++)
{
if(mynode.childNodes[i].nodeType!=1)
{
continue;
}
var x=mynode.removeChild(mynode.childNodes[mynode.childNodes.length-1]);
}
}
</script>
<button onclick="clearText()">清除節(jié)點(diǎn)內(nèi)容</button>
<input type="button" value="刪除一行" onclick="clearone()" />
</body>
</html>
2016-12-01
(第一份length錯(cuò)了,當(dāng)時(shí)做著做著后面忘記理思路了,這份正確)你這個(gè)語法完全是錯(cuò)的!首先,你刪除一行,為什么要用for循環(huán)?for循環(huán)是用來遍歷的!這里包括空格(空行)一共有11個(gè)節(jié)點(diǎn),先把節(jié)點(diǎn)列舉出來:(不用看,需要時(shí)再來查找)
a[0]:空格;????a[1]:html;????a[2]:空格;????a[3]:php;????a[4]:空格; ? ?a[5]:javascript;????a[6]:空格;????a[7]:jquery;????a[8]:空格;????a[9]:java;?????a[10]:空格;?
下面你可以當(dāng)成一個(gè)表格來看(第一次點(diǎn)擊“刪除一行”,所發(fā)生的步驟)
i ? ?length ? ?刪除的節(jié)點(diǎn)(刪除為a[length-1]) ? //i為偶數(shù)時(shí),a[i].type!=1;i為奇數(shù)時(shí),a[i].type==1;
0 ? ?11 ? ? ? ??不刪除???????? ? ????????? ?//i為偶數(shù),continue,不刪除,length依然為11;
1 ? ?11 ? ? ? ?刪除a[10]:空格 ? ? ? ? //i為奇數(shù),刪除后,length為10(此處依然為11,下面為刪除后變成10)
2 ? ?10 ? ? ? ? ?不刪除
3 ? ?10 ? ? ? ? ?刪除a[9]:java
4 ? ?9 ? ? ? ? ?不刪除
5 ? ?9 ? ? ? ? 刪除a[8]:空格
6 ? ?8 ? ? ? ? 不刪除
7????8????? ? ?刪除a[7]:jquery
8????7????????i<length不成立,因此不執(zhí)行
以上就是你第一次點(diǎn)擊所執(zhí)行的所有步驟,可以說,你只刪了兩個(gè)完全算很幸運(yùn)了,你的邏輯完全錯(cuò)誤,可以說牛頭不對(duì)馬嘴。
至于第二次,第三次以及以后的點(diǎn)擊,每一次點(diǎn)擊你都可以像我這樣列個(gè)表來看看。你就知道最后為什么要點(diǎn)兩次才刪除掉了,這里我就不幫你列了。
2016-12-28
用if 判斷該節(jié)點(diǎn) 是不是空白節(jié)點(diǎn)。 然后break語句跳出循環(huán)
2016-12-01
你這個(gè)語法完全是錯(cuò)的!首先,你刪除一行,為什么要用for循環(huán)?for循環(huán)是用來遍歷的!這里包括空格(空行)一共有11個(gè)節(jié)點(diǎn),先把節(jié)點(diǎn)列舉出來:(不用看,需要時(shí)再來查找)
a[0]:空格;????a[1]:html;????a[2]:空格;????a[3]:php;????a[4]:空格; ? ?a[5]:javascript;????a[6]:空格;????a[7]:jquery;????a[8]:空格;????a[9]:java;?????a[10]:空格;?
下面你可以當(dāng)成一個(gè)表格來看(第一次點(diǎn)擊“刪除一行”,所發(fā)生的步驟)
i ? ?length ? ?刪除的節(jié)點(diǎn)(刪除為a[length-1]) ? //i為偶數(shù)時(shí),a[i].type!=1;i為奇數(shù)時(shí),a[i].type==1;
0 ? ?11 ? ? ? ??不刪除???????? ? ????????? ?//i為偶數(shù),continue,不刪除,length依然為11;
1 ? ?11 ? ? ? ?刪除a[10]:空格; ? ? ? ? //i為奇數(shù),刪除后,length為10(此處依然為11,下面為刪除后變成10)
2????9 ? ? ? ? ?不刪除
3????8 ? ? ? ? ?刪除a[9]:java
4????7 ? ? ? ? ?不刪除
5????6 ? ? ? ? 刪除a[8]:空格;
6 ? ?5 ? ? ? ? i<length不成立,因此不執(zhí)行
以上就是你第一次點(diǎn)擊所執(zhí)行的所有步驟,可以說,你只刪了兩個(gè)完全算很幸運(yùn)了,你的邏輯完全錯(cuò)誤,可以說牛頭不對(duì)馬嘴。
至于第二次,第三次以及以后的點(diǎn)擊,每一次點(diǎn)擊你都可以像我這樣列個(gè)表來看看。你就知道最后為什么要點(diǎn)兩次才刪除掉了,這里我就不幫你列了。