我正在尝试删除图标后的文字。
<i class="flagstrap-icon flagstrap-as" style="margin-right: 10px;">x</i>France
$('.flagstrap-icon').next().remove();
问题是没有元素,next()将不起作用。
示例<span>France</span>
有想法删除图标后的文字吗?
答案 0 :(得分:2)
jQuery无法真正定位非元素的节点,但普通的JS可以
$('.flagstrap-icon').get(0).nextSibling.remove()
请注意,这使用旧版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}}
但是,如果父级包含其他元素,它将无法正常工作。