js删除DIV下部分A标签中的问题:removeChild()

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>111</title>





</head>

<body>

<div id="az">

<a href="#">1</a>

<a href="#">2</a>

<a href="#">6</a>

<a href="#">7</a>

</div>

<script type="text/javascript">

  var id = document.getElementById("az");

  var linka = id.getElementsByTagName("a");

  //alert(linka.length);

  for(i=0;i<4;i++){

  if(i==0) continue;

id.removeChild(linka[i]);

//alert(linka[i].innerHTML);

  }

   

</script>

</body>

</html>

 

CSDN上看到的一个贴子,本意是要达到删除后面所有的A标签,写了以上代码,结果不对

以上的代码有问题,原因如下:

id.removeChild(linka[i]);
这句removeChild 后返回的是一个新的数组,导致下标重新排列,所以最后的结果没有正确,把这句改为以下即可:
id.removeChild(linka[1]);//始终删除下标为1的那一个元素!通过循环就可以移除除下标为0的那个元素,其中的
if(i==0) continue; 这句也可以不用了!

你可能感兴趣的:(remove)