在jQuery中查询元素的字符串

我有一个ajax请求 POST </ code>的文本到另一个PHP页面,它呈现它 降价并将其发回。 示例如下所示:</ p>

 “&lt; p&gt; Meep,meep,&lt; em&gt; meep !!!&lt; / em&gt;&lt; / p&gt; 
&lt; pre&gt;&lt; code class =“language-javascript”&gt; var foo =“bar”;&lt; / code&gt;&lt; / pre&gt;“
</ code> </ pre>

现在 ,如果我想用选择器预编码</ code>找到所有元素,我该怎么做? 我尝试了 $(text).find(“pre code”)</ code>但没有给出结果。 问题是什么以及如何正确完成?</ p>
</ div>

展开原文

原文

I have an ajax request that POSTs text to another PHP page, which renders it to markdown and sends it back. An example looks like this:

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

Now, if I wanted to find all elements with the selector pre code, how would I do that? I tried $(text).find("pre code") but with no results given back. What is the problem and how is it done right?

dsadsa123111
dsadsa123111 你试过$(text).find(“pre>code”)吗?
5 年多之前 回复

2个回答



您可以使用 .parseHTML()</ code> 喜欢这个</ p>

$('&lt; output&gt;')。append($。parseHTML(str) ).find('pre code')</ code> </ p>

</ p>





  var str ='&lt;  p&gt; Meep,meep,&lt; em&gt; meep !!!&lt; / em&gt;&lt; / p&gt; \ 
&lt; pre&gt;&lt; code class =“language-javascript”&gt; var foo =“bar” \
;&lt; / code&gt;&lt; / pre&gt;';

alert($('&lt; output&gt;')。append($。parseHTML(str))。find('pre code') .html()); </ code> </ pre>

 &lt; script src =“https:// ajax  .googleapis.com / AJAX /库/ jquery的/ 2.1.1 / jquery.min.js“&GT;&LT; /脚本&GT; </代码> </ PRE>

</ DIV>

</ div>

</ div>

展开原文

原文

You can use .parseHTML() like this

$('<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>

</div>



结果答案是 .filter()</ code>。</ p>

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

我需要运行 hightlight.js </ code> 返回的输出,这是它的样子:</ p>

  $ html = $(data); 
$ html.filter(“pre”)。find(“code” ).each(function(i,block){
hljs.highlightBlock(block);
});
</ code> </ pre>
</ div>

展开原文

原文

Turns out the answer was .filter().

The text used in the original question is represented as the root area for jQuery - so .filter() has to be used - it returns a list of all the filtered elements. On that, I had to use .find() and got the desired result.

I needed to run hightlight.js over the returned output, here is what it looks like:

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问