[英]Querying a string for an element in jQuery
我有一个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")
但没有返回结果。 有什么问题,如何正确解决?
您可以像这样使用.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>
原来的答案是.filter()
。
原始问题中使用的文本表示为jQuery的根区域-因此必须使用.filter()
-它返回所有已过滤元素的列表。 在此.find()
,我不得不使用.find()
并获得了预期的结果。
我需要在返回的输出上运行hightlight.js
,如下所示:
$html = $(data);
$html.filter("pre").find("code").each(function(i, block) {
hljs.highlightBlock(block);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.