在jQuery中选择后代元素的最快方法是什么?

据我所知,有许多方法可以选择jQuery中的子元素。


//Store parent in a variable  

var $parent = $("#parent");

方法1 (通过使用范围)


$(".child", $parent).show();

方法2 (find()方法)


$parent.find(".child").show();

方法3 (仅对于直系子女)


$parent.children(".child").show();

方法4 (通过CSS选择器) -@spinon建议


$("#parent > .child").show();

方法5 (与方法2相同) -根据@Kai


$("#parent .child").show();

我不熟悉能够自己进行调查的配置文件,因此,我很乐意看到您要说的话。


附言:我知道这可能是这个问题的重复,但并未涵盖所有方法。


红颜莎娜
浏览 861回答 3
3回答

Cats萌萌

方法1使用jQuery不能更短和更快。此调用直接进入$(context).find(selector)(方法2,由于优化),进而调用getElementById。方法二这样做是一样的,但是没有一些不必要的内部函数调用。方法3using children()比using快find(),但是,当然,它children()只会找到根元素的直接子元素,而find()会自上而下地搜索所有子元素(包括子子元素)方法4使用这样的选择器,必须慢一些。由于sizzle(这是jQuery的选择器引擎)从右到左起作用,因此它将.child首先匹配所有类,然后再查找它们是否是id'parent'的直接子代。方法5正确地说$(context).find(selector),由于jQuery函数内的某些优化,此调用也将创建一个调用,否则也可能会经过(slower)sizzle engine。
打开App,查看更多内容
随时随地看视频慕课网APP