我的jQuery对象如下所示:
var myJq = jQuery("<div class='a'></div><div class='b'></div>")
myJq.find(".a")
返回一个空的jQuery对象,显然是因为find()
只搜索包含在jQuery对象中的节点的子节点,而不是节点本身。
如何使用选择器获取myJq
中的一个div?
发布于 2010-09-03 07:35:45
发布于 2011-03-16 14:00:00
下面是一个.find2(),它可以同时找到根元素和子元素:
$.fn.find2 = function(selector) {
return this.filter(selector).add(this.find(selector));
};
有了这个,你就可以做到:
var html = '<div class="one"><div class="one"></div></div>';
var el = html.find2(".one"); // will match both divs
下面是关于它的更多信息:http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/
发布于 2010-09-03 07:46:18
您可以使用.filter()
var div = myJq.filter('.a');
或者(更好,更快)使用.first()
var div = myJq.first('.a');
基准
var myJq = jQuery("<div class='a'></div><div class='b'></div>")
var loop = 20000;
console.time('filter');
while(loop--){
var blah = myJq.filter(".a");
}
console.timeEnd('filter');
loop = 20000;
console.time('first');
while(loop--){
var blah = myJq.first(".a");
}
console.timeEnd('first');
.first()
对我来说快了大约8倍。
https://stackoverflow.com/questions/3637298
复制