为什么和何时应该使用子程序()方法?
我想知道为什么我更喜欢使用子()方法,而不是只使用它在选择器中的子对象调用对象。下面是一个简单的例子,第一个是使用子方法()方法,而后者没有:
$(".hello").children().on("click", function) { // Do something };
$(".hello world").on("click", function) { //Do something };
我最近开始使用JQuery,所以请原谅我这个初学者的问题。
发布于 2014-11-22 09:01:31
下面是使用.hello选择任何元素的所有子元素,而不管这些子元素有哪些类。
$(".hello").children().on("click", function) { // Do something };
有了下面的选择,您将选择所有具有.world类的子元素。
$(".hello world").on("click", function) { //Do something };
我似乎还记得,您描述的两种方法和使用.find()的两种方法在性能上存在差异--我会尝试挖掘它
编辑:如下所示,使用find()遍历树,而子()只查看初级后代。
发布于 2014-11-22 09:03:26
如jQuery api的网站所述:.children()
“给定一个表示一组DOM元素的jQuery对象,.children()方法允许我们搜索DOM树中这些元素的子元素,并从匹配的元素中构造一个新的jQuery对象。.children()方法不同于.find(),因为.children()只在DOM树下移动一个级别,而.find()可以遍历多个级别来选择后代元素(孙辈等)。也是。还请注意,与大多数jQuery方法一样,.children()不返回文本节点;要获取所有子节点(包括文本和注释节点),请使用.contents()。.children()方法可以选择接受与我们可以传递给$()函数的类型相同的选择器表达式。如果提供了选择器,则将通过测试它们是否匹配来过滤元素。“
.children()
运行1级,仅直接子节点,不返回文本节点。在直接选择时,将像.find()
函数一样工作,并搜索整个子代元素树。
什么时候和为什么使用它完全取决于你。做最适合你的事情,这个问题的答案将是堆叠溢出的主题,因为它主要是基于意见的。
https://stackoverflow.com/questions/27079967
复制相似问题