在 jQuery 中查询元素的字符串
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()
并得到了预期的结果。
我需要对返回的输出运行hightlight.js
,如下所示:
$html = $(data);
$html.filter("pre").find("code").each(function(i, block) {
hljs.highlightBlock(block);
});
相关文章:
- 对id以某个字符串开头的元素进行计数
- 如何使用jQuery each分离字符串中的元素
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 数组中元素(字符串)的总和
- JavaScript forEach.迄今为止的字符串元素
- 试图从数组中只移除字符串元素,但无法向右循环
- 如何将主干序列化形式的所有字符串元素大写
- 如何在 JS 中将字符串元素解析为对象
- 将 JSON 数组中的字符串元素解析为整数
- 使用字符串元素列表作为 Select2 组件的源
- 从 JavaScript 数组中删除字符串元素
- 将字符串元素传递给数据键
- 使用JavaScript将每个数组字符串(元素)的某些部分加粗
- 检查javascript数组中的字符串元素
- 将数组的字符串元素与另一个数组的对象元素属性进行比较
- 如何拆分字符串数组中的每个字符串元素
- 试图使用映射将字符串元素添加到数组
- 在javascript的for循环中设置数组's字符串元素的长度为一个变量
- 在javascript中查找数组中字符串元素的最大出现次数
- 在Django中发送一个字符串元素列表