如果使用ID添加HTML元素名称,jQuery会运行得更快吗?

时间:2017-08-21 15:36:17

标签: jquery performance jquery-selectors

下面的

是一段代码,用于在点击div时向表中添加数据:

$(document).on("click", "div#pos_product_id_<?php echo $row['id']; ?>", function() {
    $("table#pos_till_products_list").each(function() {
        searchRow = $(this).find("tr#product_id_<?php echo $row['id']; ?>").html();
        if (searchRow == null) {
            $("#pos_till_products_list tbody:first").prepend("<?php echo $product_build; ?>");
        } else {
            var qty = $(this).find("tr#product_id_<?php echo $row['id']; ?> .qty").html();
            qty++;
            $("tr#product_id_<?php echo $row['id']; ?> .qty").html(qty);
        }
    });
});

我是使用JS / jQuery的新手,但正如您所看到的,我已经在ID的前面添加了HTML元素。我想知道如果通过添加HTML元素,它会使jQuery执行得更快吗?我认为,因为添加元素名称会阻止jQuery搜索页面上的所有其他HTML元素ID,并且只定位您要求它选择的HTML元素。

1 个答案:

答案 0 :(得分:0)

实际上,不同框架处理选择器的方式确实会影响速度,但影响通常会相当小。看看SlickSpeed,看看一系列精选的选择器测试的基准比较,从$(&#34; body&#34;)到$(&#34; div:nth-​​child(n)& #34;)在许多不同的框架上。在大多数情况下,差异只有一两毫秒,但这是一个有趣的思想实验。