删除元素后的文本

时间:2016-11-05 23:21:43

标签: jquery

我正在尝试删除图标后的文字。

<i class="flagstrap-icon flagstrap-as" style="margin-right: 10px;">x</i>France

$('.flagstrap-icon').next().remove();

问题是没有元素,next()将不起作用。

示例<span>France</span>

Demo

有想法删除图标后的文字吗?

3 个答案:

答案 0 :(得分:2)

jQuery无法真正定位非元素的节点,但普通的JS可以

$('.flagstrap-icon').get(0).nextSibling.remove()

FIDDLE

请注意,这使用旧版remove(),旧版浏览器不支持,如果您必须支持,那么

var node = $('.flagstrap-icon').get(0).nextSibling;
node.parentNode.removeChild(node);

答案 1 :(得分:0)

jQuery .next()方法选择下一个元素及其内容并且不选择不在元素内部的文本,它的工作原理是因为jquery查看{{ 3}}而不是明文。

关于如何选择没有标签的明文,我不认为它可能/我不知道

希望它能帮助mukund2003

答案 2 :(得分:0)

如果$('.flagstrap-icon').parent().html($('<div>').append($('.flagstrap-icon').clone()).html()); 元素位于父容器中,并且该容器中没有额外元素,则可以执行以下操作:

{{1}}

但是,如果父级包含其他元素,它将无法正常工作。

DEMO