JQUERY发现:首先找不到第一段?

时间:2010-01-07 05:17:04

标签: javascript jquery css-selectors find

目标,是为CKEDITOR文本编辑器提取内容,然后只获取FIRST段落。由于某种原因,轰鸣声不起作用......想法?

给出以下JavaScript:

var newTitle = CKEDITOR.instances.meeting_notes.getData(); 
newTitle = $(newTitle).find("p:first").text();

3 个答案:

答案 0 :(得分:2)

它不起作用,因为find()搜索后代,您的段落必须位于您正在搜索的HTML的顶层。

例如:

alert($("<p id='one'>one</p><p id='two'>two</p>").find("p:first").attr("id"));

返回“undefined”而:

alert($("<p id='one'>one</p><p id='two'>two</p>").filter("p:first").attr("id"));

将输出“one”。

如果你知道它位于顶层(可能会回到filter()),你可以使用find()。或者,您可以将整个批量包装在虚拟元素中:

alert($("<div>" + html + "</div>").find("p:first").text());

编辑:我的建议?使用:

newtitle = $(newtitle).filter("p:first").text();

答案 1 :(得分:0)

我不确定是否适合你,但只是尝试在:第一次之前加一个空格, 由于某些原因,就我的经验而言,我无法解释这项工作:

现在找到的新选择器,find(“ p:first ”)

var newTitle = CKEDITOR.instances.meeting_notes.getData(); 
newTitle = $(newTitle).find("p :first").text();

BTW你可以发布一些newTitle的样本值,只是好奇它的样子!

答案 2 :(得分:0)

这是完全未经测试的,但假设getData返回的是一串HTML,请尝试:

newTitle=$("<div>").html(newTitle).find("p:first").text();