为了账号安全,请及时绑定邮箱和手机立即绑定

怎么点击第一下没有反应,然后再点击一下删除了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()">清除节点内容</button>


正在回答

47 回答

看完你们的见解,明白了好多,谢谢各位大神

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

小于飞飞大神学习时间太————了吧,算了下,每天学习24小时,一年到头不休息,也要学5年多啊。

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

小于飞飞大神学习时间太————了吧,算了下,每天学习24小时,一年到头不休息,也要学5年多啊。

0 回复 有任何疑惑可以回复我~
for(var i=0; i<content.childNodes.length;){
      content.removeChild(content.childNodes[i]);
  }

超级简单,或者用while也可以

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

研究了一下,这个问题其实主要的原因有两个:

1、 content.childNodes.length 不能直接写进循环条件里,因为每次执行后子节点的数量都会变,所以应该在循环前先把子节点数量赋值给一个变量,再放到循环条件里。

2、最后删除节点 content.removeChild(content.childNodes[0]); 这里的子节点下标也不能是循环里的自增变量(i),因为第一次循环删除了第1个子节点,那么第2个子节点就会变成第1个子节点,第3个子节点会变成第2个子节点,以此类推……
当第二次循环时 i=1,也就是删除第2个子节点(原第3个节点),是会跳过1个节点删除的,因为循环条件在自增,而节点是在递减。

比如,原来5个子节点分别是:

html(删除)

php(跳过,第2次点击才会被删除)

javascript(删除)

jquery(跳过,第3次点击才会被删除)

java(删除)


最后代码:

function clearText() {
  var content=document.getElementById("content");
  // 在此完成该函数
  var del_node_length = content.childNodes.length; 
  for(var i = 0; i<del_node_length; i++){
      var x =content.removeChild(content.childNodes[0]);
  }
}


0 回复 有任何疑惑可以回复我~
兼容浏览器一次删除一个
<!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>
<p id="xyz"></p>

<script type="text/javascript">
function clearText() 
{
  var content=document.getElementById("content");
  // 在此完成该函数
  var array_length=content.childNodes.length;
  for(var i=0;i<array_length;i++)
  {
      if(content.childNodes[0].nodeType==1)
        {
           var x = content.removeChild(content.childNodes[0]);
            document.getElementsByTagName("p")[0].innerHTML+="删除元素:"+x+"<br/>"+"删除元素的内容:"+x.innerHTML+"<br/><br/>";
            break;
        }
    else{
            var x=content.removeChild(content.childNodes[0]);
            document.getElementsByTagName("p")[0].innerHTML+="删除元素:"+x+"<br/>"+"删除元素的内容:"+x.innerHTML+"<br/><br/>";
        }
  }
}
</script>

<button onclick="clearText()">清除节点内容</button>



</body>
</html>


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

大言不惭次,哈哈。搞懂这个这节就可以出师了。
<div id="content">1
  <h1>html</h1>2
  <h1>php</h1>3
  <h1>javascript</h1>4
  <h1>jquery</h1>5  
  <h1>java</h1>6  
</div>
<script type="text/javascript">
var content=document.getElementById("content");
var x=content.childNodes;
function get_nextSibling(n){
    var x=n.nextSibling;
    while(x && x.nodeType!=1){  
        x=x.nextSibling;    
    }    
    return x;       
    }     
function clearText() {
    nodel=x.length
    for(var i=0;i<nodel;i=i+10){           
        var y=get_nextSibling(x[i]);                
        if(y!=null){
            content.removeChild(y);                 
         }else{
          document.write("<br>已经是最后一个节点");       
         }
    }   
}
</script>  
<button onclick="clearText()">清除节点内容</button>

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

 var jj = content.childNodes;

  for(var i=0;i<jj.length;)

  content.removeChild(jj[i]);

 

  return clearText;

}   i不要自加就可以做到一键清除了


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

谢谢分享。

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

这样可以清楚得看到共清除了11个节点,将注释取消就可以每次清除一个h1节点,将break注释可以一次全清

function clearText() {

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

  // 在此完成该函数

  x=content.childNodes;

  for(i=0;i<x.length;i++){

        //   if(x[i].nodeType!=1){

        //           continue;

        //   }else{

                   y=content.removeChild(x[i]);

                   document.getElementById("chakan").innerHTML=y.innerHTML;

                break;

        //    }     

    } 

}


0 回复 有任何疑惑可以回复我~
首页上一页12345下一页尾页

举报

0/150
提交
取消

怎么点击第一下没有反应,然后再点击一下删除了3个,然后再点击依次删除一个

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信