这是Firebug中的测试运行。我试图动态制作一个jQuery对象,然后使用类或id选择器查找它的一部分。注意find()调用如何给出空结果。

>>> var testhtml = '<div class="oggi">h</div>'
undefined
>>> $(testhtml)
[div.oggi]
>>> $(testhtml).find(".oggi")
[]
>>> var testhtml2 = '<div id="yggi">hjhj</div>'
undefined
>>> $(testhtml2)
[div#yggi]
>>> $(testhtml2).find("#yggi")
[]


我是否应该将其解释为您无法对未连接到浏览器主DOM树的html进行一些jQuery操作?我还可以使用其他技巧来完成这项工作吗?

我设法通过在html中创建一个临时div,在其中加载数据,然后执行find()来获得更好的效果。

我的实际任务是使用ajax加载一段html,然后将其不同部分复制到网页中的不同位置。

最佳答案

.find()用于查找子代,请改用.filter()

var testhtml = '<div class="oggi">h</div>';

// if you want to check it whether has a class, use
console.log($(testhtml).is(".oggi"));

// or you could use filter to get the element you want.
console.log($(testhtml).filter('.oggi'));

09-25 11:29