我对选择语法有一些偏好,例如:

 $('#mydiv > a.selectMe').hide();
 $('#mydiv').children('a.selectMe').hide();

对我来说,这看起来有点令人困惑,因为jQuery的文档在这里有点含糊不清:

<!>

QUOT; 父母<!> GT; child返回:数组 匹配由<!> quot; child <!>指定的所有子元素;由<!>指定的元素; parent <!> ;; QUOT <!>;

<!>

QUOT; children(expr)返回:jQuery 获取一组元素,其中包含每个匹配元素集的所有唯一直接子元素。 QUOT <!>;

在我的脑海中需要澄清的问题是,第一种形式是返回所有的孩子/孙子,还是只是直接的孩子,因为第二种形式表明是真的。 其中一个是<!> quot; selector <!> quot;表单和另一个<!>;遍历<!>;在jQuery文档页面上,对我来说这是类似的功能任务但不完全相同。

所以这里的问题是:
哪种形式更快? 他们真的选择相同的东西,还是'父<!> gt;孩子的形式选择了大孩子以及直系孩子吗?

有帮助吗?

解决方案

$('#mydiv a.selectMe') - 查找具有“selectMe”类的所有锚点,这些锚点是标记为ID <!>“mydiv <!>”的标记的后代。这些可以深深嵌套。

$('#mydiv <!> gt; a.selectMe') - 找到直接的孩子。

至于你的两个直接孩子的例子之间哪个更快...我做了一些时间试验来测试。

我有一个带有10,000个锚标签的页面,其中包含“selectMe”类,在ID为'mydiv'的Div中。

$("#mydiv").children("a.selectMe") - 485ms
$("#mydiv > a.selectMe") - 374ms

基本上,尽管使用选择器执行所有操作的速度始终更快,但这种差异可以忽略不计。如果你在一个页面上有10k锚点,那么你面临着一个完全不同的问题。 : - )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top