jQuery-给定一个DIV,其中包含一堆<;P>;标签,如何找到第一个<;P>;那不是';t空

jQuery-给定一个DIV,其中包含一堆<;P>;标签,如何找到第一个<;P>;那不是';t空,jquery,html,Jquery,Html,给定一个包含大量段落标记的DIV: <div> <p></p> <p>ADSADASAD ADS ADS A </p> <p>ADSADASAD ADS ADS A </p> <p>ADSADASAD ADS ADS A </p> <p>ADSADASAD ADS ADS A </p> </div> 广告 广告 广告 广告 如何

给定一个包含大量段落标记的DIV:

<div>
 <p></p>
 <p>ADSADASAD ADS ADS  A </p>
 <p>ADSADASAD ADS ADS  A </p>
 <p>ADSADASAD ADS ADS  A </p>
 <p>ADSADASAD ADS ADS  A </p>
</div>

广告

广告

广告

广告

如何使用jQUery神奇地找到第一个不是空的
?想法?

我认为您可以使用:

$('div').find('p:not(:empty):first')
我认为你可以使用:

$('div').find('p:not(:empty):first')
编辑:tster的解决方案看起来更好,我不知道
:empty
选择器

Edit:tster的解决方案看起来更好,我不知道
:empty
选择器。

您可以尝试以下方法:

$('div p:not(:empty)').eq(0);
您可以尝试以下方法:

$('div p:not(:empty)').eq(0);

我发现在这方面使用方法而不是选择器稍微不那么费心:

$('div').find('p').not(':empty').first()

编辑:根据海报的评论,这里有一个版本将“空”定义为“没有文本内容,尽管可能存在HTML标记”:


示例:

我发现在这方面使用方法而不是选择器稍微不那么费心:

$('div').find('p').not(':empty').first()

编辑:根据海报的评论,这里有一个版本将“空”定义为“没有文本内容,尽管可能存在HTML标记”:


示例:

您可以使用以下任一选项

var firstNonEmptyP1 = $('p').not(':empty').first();
var firstNonEmptyP2 = $('p:not(:empty):first');

工作示例:

您可以使用以下任一项

var firstNonEmptyP1 = $('p').not(':empty').first();
var firstNonEmptyP2 = $('p:not(:empty):first');

工作示例:

您可以将
:not
选择器与
:empty
选择器一起使用,如下所示:

var notEmpty = $('#container').find('p:not(:empty):first');
// or
var notEmpty = $('#container > p:not(:empty):first');


上面使用一个ID来查找div的容器,当然这是jQuery,您可以使用任何选择器。

您可以将
:not
选择器与
:empty
选择器一起使用,如下所示:

var notEmpty = $('#container').find('p:not(:empty):first');
// or
var notEmpty = $('#container > p:not(:empty):first');


上面使用一个ID来查找div的容器,但这当然是jQuery,你可以使用任何选择器。

超过500个问题,你仍然不知道如何设置问题中的代码格式?@David Thomas-格式太差,以至于有8个人编辑了这篇文章,因此,使它成为社区维基…8次编辑,它仍然是“jQUery”…天哪。有些人,嗯?O.oOver 500个问题,你仍然不知道如何在你的问题中设置代码格式?@David Thomas-格式太差,以至于有8个人编辑了这篇文章,从而使它成为社区维基…8次编辑,它仍然是“jQUery”…天哪。有些人,嗯?O.oThanks,但我不知道如何使用它。我通过tinyMCE.activeEditor.getContent()获取所有HTML作为字符串,它返回所有这些段落标记;newNoteTitle=newNoteTitle.find('p:first(:not(:empty))),但该错误duse
newNoteTitle=$(tinyMCE.activeEditor.getContent())
无更改:newNoteTitle=$(tinyMCE.activeEditor.getContent());newNoteTitle=newNoteTitle.find('p:first(:not(:empty))).text();您需要在
:not(:empty)
之后应用
:first
,它才能工作。谢谢,但我不知道如何使用它。我通过tinyMCE.activeEditor.getContent()获取所有HTML作为字符串,它返回所有这些段落标记;newNoteTitle=newNoteTitle.find('p:first(:not(:empty))),但该错误duse
newNoteTitle=$(tinyMCE.activeEditor.getContent())
无更改:newNoteTitle=$(tinyMCE.activeEditor.getContent());newNoteTitle=newNoteTitle.find('p:first(:not(:empty))).text();你需要在
:not(:empty)
之后首先应用
:not(:empty)
,它才能工作。我将以此作为答案,但它最终不适用于我的TinyMCE用例,它虽然看起来是空的,但仍然可以包含HTML或HTML实体。我将以此作为答案,但它最终不适用于我的TinyMCE用例,虽然看起来是空的,但仍然可以包含HTML或HTML实体