JQuery:在动态生成的HTML片段中查找元素

时间:2016-05-26 05:26:28

标签: jquery

我有以下代码:

var snippet = $('<div><span class="findme">text</span></div><div class="findme2"></div>');

alert(snippet.find('.findme2').length);

警报显示为0.

如何通过JQuery找到findme2 div?假设我无法修改上述HTML代码段的结构(例如:添加DIV以包装代码段)

更新

我必须使用Jquery 1.11.x。

3 个答案:

答案 0 :(得分:3)

您需要使用 filter() ,否则会在元素内搜索

&#13;
&#13;
var snippet = $('<div><span class="findme">text</span></div><div class="findme2"></div>');

alert(snippet.filter('.findme2').length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

<小时/> 或者使用元素换行,然后使用 find()

&#13;
&#13;
var snippet = $('<div><span class="findme">text</span></div><div class="findme2"></div>');

alert($('<div>', {
  html: snippet
}).find('.findme2').length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个

与Jquery 1.11.x兼容。

var snippet = $('<div><span class="findme">text</span></div>').append('<div class="findme2"></div>');

alert(snippet.find('.findme2').length);

<强> Fiddle

答案 2 :(得分:0)

您可以使用filter()代替find()

var snippet = $('<div><span class="findme">text</span></div><div class="findme2"></div>');

alert(snippet.filter('.findme2').length);
  

注意:filter将从所选元素中选择元素的子集   find将选择所选元素的后代