Это не работает, потому что 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"));
выведет «один».
Таким образом, вы можете использовать filter()
, если знаете, что он находится на верхнем уровне (возможно, возвращаясь к find()
). В качестве альтернативы вы можете обернуть весь лот в элемент-пустышку:
alert($("<div>" + html + "</div>").find("p:first").text());
Редактировать: Мой совет? Использование:
newtitle = $(newtitle).filter("p:first").text();