在jQuery中查询元素的字符串

时间:2015-03-15 01:40:12

标签: javascript php jquery ajax markdown

我有一个ajax请求POST的文本到另一个PHP页面,这会将其呈现为markdown并将其发回。一个例子如下:

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

现在,如果我想用选择器pre code查找所有元素,我该怎么做?我试过$(text).find("pre code"),但没有给出结果。问题是什么以及如何正确完成?

2 个答案:

答案 0 :(得分:0)

您可以像这样使用.parseHTML()

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

&#13;
&#13;
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());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

原来答案是.filter()

原始问题中使用的文本表示为jQuery的根区域 - 因此必须使用.filter() - 它返回所有已过滤元素的列表。在那,我必须使用.find()并获得所需的结果。

我需要在返回的输出上运行hightlight.js,这是它的样子:

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