仅查找段落并删除p标记

时间:2011-05-15 03:30:10

标签: javascript regex

我试图用内联样式找到所有p标签attrs style =“text-align:center;”只包含 而没有其他内容。然后删除每个找到的整个p。

还有其他p标签具有相同的attr,其中包含的内容不仅仅是我要保留的内容,我只是坚持找到只有空格的那些。愚蠢的wordpress tinyMCE编辑器,让我疯狂。

这是我正在努力做的事情的基础。只输出所有文本对齐中心p标记。

var p = $('.entry p[style="text-align: center;"]');
p.each(function() { 
  console.log(p);
});

愚蠢的小事,我不想再花时间试图弄清楚我做错了什么。这是一个包含我正在使用的东西的示例页面。 http://www.drinkinginamerica.com/page/14/

由于

2 个答案:

答案 0 :(得分:4)

您可以使用remove()功能执行此操作:

$('.entry p').each(function() {
    var $p = $(this),
        txt = $p.html();
    if (txt==' ') {
        $p.remove();   
    }
});

有关工作示例,请参阅http://jsfiddle.net/nrabinowitz/LJHyA/。这假定了一个非常严格的情况,其中p标记中唯一的内容是 实体。


太慢 - @mu胜。

答案 1 :(得分:3)

我想你想要这个:

$('.entry p[style="text-align: center;"]').each(function() {
    var $this = $(this);
    if($this.html().match(/^\s* \s*$/))
        $this.remove();
});

这对精确的style属性有点敏感,但对 在段落中的格式化方式有点宽容。

我认为有点宽松的东西可能会更好地为你服务:

$('.entry p').each(function() {
    var $this = $(this);
    if($this.css('text-align') == 'center'
    && $this.html().match(/^\s* \s*$/))
        $this.remove();
});

http://jsfiddle.net/ambiguous/nMKnR/