如何删除已知ID元素中的特定子元素?

时间:2012-02-01 22:39:42

标签: javascript

我希望能够确定我知道其ID的父节点是否具有直接子节点,并且如果检测到这样的节点,则将其删除。节点(如果存在)将始终跟随一些文本,因此我认为我不能使用firstChild或lastChild。

理想情况下,我会使用Javascript来最大限度地降低性能。虽然JQuery也可以在必要时使用。

代码是这样的:

<a id="anchorID">some text 
<span class="spanClass">some span text</span>
</a>

任何帮助,一如既往,表示赞赏。

5 个答案:

答案 0 :(得分:4)

如果您想删除锚点中的子节点,并且您对jQuery没问题,那么它非常简单:

$("#anchorId").empty();

修改

您只想删除范围吗?

$("#anchorID span").remove();

这将删除锚中的所有跨度。如果你只想删除第一个跨度,那么你可以做

$("#anchorID span:first").remove();

答案 1 :(得分:3)

使用jQuery和HTML,它就像$("#anchorId").remove(".spanClass");

一样简单

答案 2 :(得分:2)

plain ol js

var target = document.getElementById("anchorId");
if(target.hasChildNodes())
{
  var children = new Array();
  children = target.childNodes();
  for(child in children)
  {
    target.removeChild[child];
  }
}

答案 3 :(得分:0)

使用纯JavaScript使用element.removeChild:http://jsfiddle.net/JetxN/

答案 4 :(得分:0)

如果您不想删除顶级textNode(即“某些文字”锚文字):

$('#anchorID').children().remove();