删除没有id标记的div

时间:2011-05-17 02:12:41

标签: javascript dom

我需要一个解决方案,只在JavaScript中删除没有ID标记的div。 div看起来像<div align="center">

这是完整的结构。

<tr id="-1">
  <td class="stxt">
    <div align="center">
    </div>
  </td>
</tr>

3 个答案:

答案 0 :(得分:3)

您需要弄清楚如何获取它的引用,一旦完成,您可以使用以下命令将其删除:

div.parentNode.removeChild(div);

当然, align 属性已被弃用,但无论如何,您可以使用以下代码找到align="center"的div:

var divs = document.getElementsByTagName('div');
var div;
var i = divs.length;

while (i--) {
  div = divs[i];

  if (div.getAttribute('align') == 'center') {
    div.parentNode.removeChild(div);
  }
}

将删除包含align="center"的文档中的每个div。

请注意getElementsByTagName返回的对象是NodeList。如果从0迭代它并删除节点,它们将从实时列表中删除,因此您将跳过删除后的节点,并且您将尝试在最后访问不存在的节点。向后查看列表避免了这些陷阱。另一种方法是将NodeList转换为数组,但效率稍低。

修改

自编辑问题以来,这是一个更新答案。

您可以使用 getElementById 获取对TR的引用:

var root = document.getElementById('-1');

现在你可以沿着DOM走下去了:

var cell = root.cells[0]; // First cell in the row
var div = cell.getElementsByTagName('div')[0]; // first div
cell.removeChild(div);

具体针对您发布的结构。

答案 1 :(得分:1)

如果您可以删除内容,则可以使用:

var all = document.getElementsByTagName("div");
for(i=0; i < all.length; i++) {
    all[i].innerHTML = ""
}

请参阅http://jsfiddle.net/7KVkC/

答案 2 :(得分:0)

你需要一些方法来使这个div标签独一无二。还有另一个名为getElementsByTagName的javascipt函数可用于获取所有div标记的数组。然后,您可以使用DOM来检查该div标签是否具有align="center"的属性。