如何从父节点删除特定标签?

时间:2013-07-24 13:26:12

标签: javascript

代码

<div class="something>
    <input type="text onchange="some_function(this)">
    <span>Blqh blqh</span>
    <span>Blq blq</span>
</div>

输入发生变化后,我希望some_function(this)删除所有<span>标记。到目前为止,我所拥有的功能:

function some_function(x_this) {
   var parent=x_this.parentNode;
}

如何获取所有<span>元素并将其删除?

非常感谢

4 个答案:

答案 0 :(得分:2)

function some_function(x_this) {
   var parent=x_this.parentNode,
       spans = parent.getElementsByTagName('span');

   for (var i = 0; i < spans.length; i++){
      parent.removeChild(spans[i]);
   }
}

答案 1 :(得分:2)

使用以下 HTML ,例如

<div id="foo">
    <input />
    <span>Blqh blqh</span>
    <span>Blq blq</span>
    <br />
</div>

您可以运行此 JavaScript

var parent = document.getElementById('foo'), i = parent.childNodes.length;
while (i--) 
    if (parent.childNodes[i].tagName === 'SPAN')
        parent.removeChild(parent.childNodes[i]);

答案 2 :(得分:0)

$('#parent').find('span').remove();

或使用纯粹的js

var childrenspan = document.getElementById('id').getElementsByTagName('span');

for(var i=0;i<childrenspan.length;i++)
{
   childrenspan[i].parentNode.removeChild(childrenspan[i]);
}

答案 3 :(得分:0)

如果您使用 jquery ,请在您的Div标记中添​​加ID,然后

<div id="mydiv">
    <input />
    <span>Blqh blqh</span>
    <span>Blq blq</span>
    <br />
</div>

使用此jquery代码:

$('#mydiv').find('span').remove()