Запрос строки для элемента в jQuery

У меня есть запрос AJAX, что POSTs текст на другую страницу PHP, которая переводит его в уценку и отправляет обратно. Пример выглядит так:

"<p>Meep, meep, <em>meep!!!</em></p>
<pre><code class="language-javascript">var foo = "bar";</code></pre>"

Теперь, если бы я хотел найти все элементы с помощью селектора pre codeкак бы я это сделал? Я старался $(text).find("pre code") но без результатов. В чем проблема и как это правильно сделать?

2 ответа

Оказывается, ответ был .filter(),

Текст, использованный в исходном вопросе, представлен как корневая область для jQuery, поэтому .filter() должен быть использован - он возвращает список всех отфильтрованных элементов. На что мне пришлось использовать .find() и получил желаемый результат.

Мне нужно было бежать hightlight.js по возвращенному выводу вот как это выглядит:

$html = $(data);
$html.filter("pre").find("code").each(function(i, block) {
    hljs.highlightBlock(block);
});

Ты можешь использовать .parseHTML()как это

$('<output>').append($.parseHTML(str)).find('pre code')

var str = '<p>Meep, meep, <em>meep!!!</em></p>\
<pre><code class="language-javascript">var foo = "bar"\
;</code></pre>';
alert($('<output>').append($.parseHTML(str)).find('pre code').html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Другие вопросы по тегам