删除没有 id 标签的 div

发布于 2024-11-08 11:14:28 字数 275 浏览 0 评论 0 原文

我需要一个解决方案来仅在 JavaScript 中删除没有 ID 标签的 div。 div 看起来像这样

这是完整的结构。

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

I need a solution to remove a div without an ID tag in JavaScript only. The div looks like this <div align="center">.

Here is the full structure.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我不是你的备胎 2024-11-15 11:14:28

您需要弄清楚如何获取对它的引用,完成后,您可以使用以下方法删除它:

div.parentNode.removeChild(div);

当然 align 属性已被弃用,但无论如何,您可以找到 div with align="center" using:

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 返回的对象是 节点列表。如果您从 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);

这是特定于您发布的结构的。

You need to work out how to get a reference to it, once you've done that, you can remove it using:

div.parentNode.removeChild(div);

Of course the align attribute has been deprecated, but anyway, you can find the divs with align="center" using:

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);
  }
}

Which will remove every div in the document that has align="center".

Note that the object returned by getElementsByTagName is a NodeList. If you iterate over it from 0 and remove nodes, they are removed from the live list so you will skip the node following the one you remove and you will attempt to access no existant nodes at the end. Going over the list backwards avoids these pitfalls. An alternative is to turn the NodeList into an array, but that's somewhat inefficient.

Edit

Since you edited the question, here's an update answer.

You can get a reference to the TR using getElementById:

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

Now you can go down the DOM:

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

Which is specific to the structure you've posted.

べ繥欢鉨o。 2024-11-15 11:14:28

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

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

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

If you can just remove the content, you can use:

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

See http://jsfiddle.net/7KVkC/

开始看清了 2024-11-15 11:14:28

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

You need some way to make this div tag unique. There is another javascipt function called getElementsByTagName that you can use to get an array of all of the div tags. You can then use the DOM to check whether that div tag has the property of align="center".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文