Javascript 相同的元素有不同的子元素
根据调试器,这两个JQuery元素具有相同的选择器,但第一个元素包含我希望在其中的子元素,第二个元素根本没有子元素。在这两种情况下,方法链是相同的,唯一的区别是Javascript 相同的元素有不同的子元素,javascript,jquery,Javascript,Jquery,根据调试器,这两个JQuery元素具有相同的选择器,但第一个元素包含我希望在其中的子元素,第二个元素根本没有子元素。在这两种情况下,方法链是相同的,唯一的区别是this.table是从父类传递的引用。我遗漏了什么?仅供参考,没有理由链接.find(“#grid”).find(“#gridTable”)。如果它是一个ID,只需直接选择它,因为只有一个元素可以有一个给定的ID。例如,$(“#gridTable”)这是什么。table确切地说是什么?@MikeC,我知道,但它是通过几个类传递的,它应该
this.table
是从父类传递的引用。我遗漏了什么?仅供参考,没有理由链接.find(“#grid”).find(“#gridTable”)
。如果它是一个ID,只需直接选择它,因为只有一个元素可以有一个给定的ID。例如,$(“#gridTable”)
这是什么。table确切地说是什么?@MikeC,我知道,但它是通过几个类传递的,它应该更快,因为它不必过滤整个DOM,对吗?@Krzaku这一切都取决于浏览器。对于浏览器实现者来说,为每个ID创建某种更快的哈希是有意义的。一般来说,document.getElementById
(jQuery下面使用的)比任何其他形式的DOM遍历都要快。事实上,$('#id1').find('#id2')
可能比$('#id2')
慢,因为在找到id2
之后,它必须检查它是否在id1
内。
tileElement = $('#game').find('#grid').find('#gridTable').find('.tile[data-tile-x=' + tile.x + '][data-tile-y=' + tile.y + ']');
tileElement1 = this.table.find('.tile[data-tile-x=' + tile.x + '][data-tile-y=' + tile.y + ']');