![](/img/trans.png)
[英]How to append an element after specific child element using jquery?
[英]How to delete an element in jQuery with a specific child?
HTML:
<p><br style="clear:both;"></p>
我正在为项目使用Wikipedia API,并且正在清理Wikipedia的原始HTML输出,并且一直在努力解决此问题。 如何使用jQuery使用.remove();
从DOM中删除此特定<p>
元素.remove();
? 我只希望删除其中具有<br style="clear:both;">
的<p>
元素。
提前致谢! 我一直在努力解决这个问题。
因此,您要删除具有给定样式属性的所有直接包含<br>
元素吗?
$('br[style="clear:both;"]').parent().remove();
这是相当保守的,因为它仅匹配您描述的形式的br
标签-尽管通过在parent
调用中插入p
选择器可能更加保守。 但是,它也非常保守,可能不会在此标记上引起小的变化,因此请注意。
假设孩子本身是br
,那么代码将是-
$('p>br').closest('p').remove();
或使用
$('p>br[style="clear:both;"]').closest('p').remove();
或使用父函数
$('br[style="clear:both;"]').parent('p').remove();
但是不要做
$('br[style="clear:both;"]').parent().remove(); // Don't use this
因为可能有很多br
可能在dom
的父不是p
尝试:
$('p:has(br[style="clear:both;"])').remove();
正如Matchu指出的那样,要小心,因为这会删除内部带有<br style="clear:both;">
<p>
元素,因此在某些特定情况下(如果<p>
内还有其他内容),它可能会删除比您更多的元素期望...
$('p').filter(function(i) {
return $(this).children('br').css('clear') == 'both';
}).remove();
执行任务的更安全的方法-
$('p').each(function(){
if($(this).children().length === $(this).children('br').length)
$(this).remove();
});
$('p').each(function(){
if($(this).children('br').length == 1) {
$(this).remove();
}
});
这对我有用。 似乎“很清楚:两者都”; 是由浏览器生成的。 感谢您的所有想法和建议,以便我能解决!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.