Javascript (jQuery)选择document.body而不是父元素

Javascript (jQuery)选择document.body而不是父元素,javascript,jquery,performance,Javascript,Jquery,Performance,这部分代码是对此的回答 我有两个问题,第一个是。 选择“document.body”而不是选择select的父元素时是否存在性能问题? 像这样的 第二个问题是。 当放置父元素而不是document.body时,它的功能类似于“$.live()” $("#IdOfParentHere").on('change', 'select[name^="income_type_"]', function() { alert($(this).val()); }); 谢谢 选择“document.bo

这部分代码是对此的回答

我有两个问题,第一个是。 选择“document.body”而不是选择select的父元素时是否存在性能问题? 像这样的

第二个问题是。 当放置父元素而不是document.body时,它的功能类似于“$.live()”

$("#IdOfParentHere").on('change', 'select[name^="income_type_"]', function() {
    alert($(this).val());
});
谢谢

选择“document.body”而不是选择select的父元素是否存在性能问题

没有。在性能上没有显著差异。当然,如果你把它放在DOM上,速度会快一点,但是我们讨论的是一个无法计算的小差异

第二个问题是。当放置父元素而不是document.body时,它的功能类似于“$.live()”

$("#IdOfParentHere").on('change', 'select[name^="income_type_"]', function() {
    alert($(this).val());
});

$。live
的作用与
$(“body”)完全相同。在(“单击”、“选择器”上,

将事件处理程序附加到body而不是父元素时,可能会对性能产生影响(虽然影响不大)

举一个例子,当您试图委派一个点击事件时,您真正想要的是处理静态ul元素中动态创建的
li
元素。在事件委派中,当附加元素中发生事件时,将根据委派选择器评估事件目标,以查看是否触发h在这种情况下,如果事件连接到
ul
,则只需测试ul内部的事件,但如果handler连接到主体,则必须测试页面中的所有点击

l方法将处理程序附加到document对象,因此,是的,它将类似于此

此方法提供了将委托事件处理程序附加到 页面的文档元素,它简化了事件处理程序的使用 将内容动态添加到页面时


你的回答很详细,但不知怎么的,几乎是一句直白的话。谢谢!