我有一个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")
,但没有给出结果。问题是什么以及如何正确完成?
答案 0 :(得分:0)
您可以像这样使用.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());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:0)
原来答案是.filter()
。
原始问题中使用的文本表示为jQuery的根区域 - 因此必须使用.filter()
- 它返回所有已过滤元素的列表。在那,我必须使用.find()
并获得所需的结果。
我需要在返回的输出上运行hightlight.js
,这是它的样子:
$html = $(data);
$html.filter("pre").find("code").each(function(i, block) {
hljs.highlightBlock(block);
});