關于刪除一行的實現,我這個點擊一下刪除一行在刪除最后一行時不知道問什么要點擊2次,不知道哪位大神能解答一下?
<!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 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");
//此處用到的是繼續循環: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()">清除節點內容</button>
<input type="button" value="刪除一行" onclick="clearone()" />
</body>
</html>
2016-12-01
(第一份length錯了,當時做著做著后面忘記理思路了,這份正確)你這個語法完全是錯的!首先,你刪除一行,為什么要用for循環?for循環是用來遍歷的!這里包括空格(空行)一共有11個節點,先把節點列舉出來:(不用看,需要時再來查找)
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]:空格;?
下面你可以當成一個表格來看(第一次點擊“刪除一行”,所發生的步驟)
i ? ?length ? ?刪除的節點(刪除為a[length-1]) ? //i為偶數時,a[i].type!=1;i為奇數時,a[i].type==1;
0 ? ?11 ? ? ? ??不刪除???????? ? ????????? ?//i為偶數,continue,不刪除,length依然為11;
1 ? ?11 ? ? ? ?刪除a[10]:空格 ? ? ? ? //i為奇數,刪除后,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不成立,因此不執行
以上就是你第一次點擊所執行的所有步驟,可以說,你只刪了兩個完全算很幸運了,你的邏輯完全錯誤,可以說牛頭不對馬嘴。
至于第二次,第三次以及以后的點擊,每一次點擊你都可以像我這樣列個表來看看。你就知道最后為什么要點兩次才刪除掉了,這里我就不幫你列了。
2016-12-28
用if 判斷該節點 是不是空白節點。 然后break語句跳出循環
2016-12-01
你這個語法完全是錯的!首先,你刪除一行,為什么要用for循環?for循環是用來遍歷的!這里包括空格(空行)一共有11個節點,先把節點列舉出來:(不用看,需要時再來查找)
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]:空格;?
下面你可以當成一個表格來看(第一次點擊“刪除一行”,所發生的步驟)
i ? ?length ? ?刪除的節點(刪除為a[length-1]) ? //i為偶數時,a[i].type!=1;i為奇數時,a[i].type==1;
0 ? ?11 ? ? ? ??不刪除???????? ? ????????? ?//i為偶數,continue,不刪除,length依然為11;
1 ? ?11 ? ? ? ?刪除a[10]:空格; ? ? ? ? //i為奇數,刪除后,length為10(此處依然為11,下面為刪除后變成10)
2????9 ? ? ? ? ?不刪除
3????8 ? ? ? ? ?刪除a[9]:java
4????7 ? ? ? ? ?不刪除
5????6 ? ? ? ? 刪除a[8]:空格;
6 ? ?5 ? ? ? ? i<length不成立,因此不執行
以上就是你第一次點擊所執行的所有步驟,可以說,你只刪了兩個完全算很幸運了,你的邏輯完全錯誤,可以說牛頭不對馬嘴。
至于第二次,第三次以及以后的點擊,每一次點擊你都可以像我這樣列個表來看看。你就知道最后為什么要點兩次才刪除掉了,這里我就不幫你列了。