【问题标题】:jquery.val() vs underlying element value performance [closed]jquery.val() 与底层元素值性能
【发布时间】:2023-03-03 09:31:18
【问题描述】:

我有一个简单的性能问题。

哪个更好

var elem = jQuery("#idOfMyElem"), y;
if (elem.length) {
    y = elem.val();
    // y = elem[0].value;
}

哪个表现更好? elem.val() 或 elem[0].value;

【问题讨论】:

  • 性能问题应始终通过运行测试来评估。使用 jsPerf.com 构建相关测试。此外,如果您想要获得最佳性能,请在第一行中避免使用 jQuery。请改用document.getElementById(),因为这可能是一个更大的区别。

标签: jquery performance dom


【解决方案1】:

这个:

var elem = document.getElementById('idOfMyElem'), y;

if (elem) {
    y = elem.value;
}

$(elem).on('click', function() { ... })

【讨论】:

  • 嗨,谢谢,但我需要 jquery elem,因为我将把它用于其他东西。就像给它添加事件监听器一样。
  • 然后再包起来 -> $(elem).
  • @user578635 - 在性能方面,当通过 ID 获取元素时,您可能永远不会注意到其中的区别,并且始终坚持使用 jQuery 通常是使代码更具可读性和更容易的好主意以后了解。使用本机值和 val() 也是如此,区别很小,所以做你认为更具可读性的事情。
【解决方案2】:

Here 是一个简单的测试。 据此,y = elem.val()y = elem[0].value 慢约 90%

【讨论】:

    猜你喜欢
    • 2018-10-05
    • 2014-06-19
    • 2011-04-10
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    相关资源
    最近更新 更多