javascript - 当我尝试使用 jQuery 将标题归因于 DropDownlist 时出现性能问题

标签 javascript jquery performance optimization

我使用下面的代码来使用 jQuery 选择所有下拉菜单并将标题值归因于它。

jq("select option").each(function () {
   jq(this).attr({ 'title': jq(this).html() });
});

但问题是,如果 DropDown 中有大量值,则需要花费大量时间来赋予标题值。

如何提高代码的性能?

最佳答案

使用它应该会提高性能,因为它作用于直接对象,而不是通过 jQuery:

选项 1:提高 jQuery 性能

$('select > option').each(function() {
    this.title = this.text;
});

fiddle : http://jsfiddle.net/ZJaKF/

选项 2:使用“vanilla Javascript”

不使用.each也会提高性能,因为每次迭代都必须在内部调用匿名函数。如果你真的想要性能,只需使用“vanilla”Javascript:

var options = document.getElementById('selectId').options,
    i = options.length;

while (--i > -1) options[i].title = options[i].text;

选项 3:使用服务器端实现

输出表单时只需将标题属性设置为选项的内容。这将是最快的解决方案。

See here for a comparison of benchmarks using different techniques

关于javascript - 当我尝试使用 jQuery 将标题归因于 DropDownlist 时出现性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6214109/

相关文章:

javascript - 使用 jquery 在特定时间间隔自动切换/动画 css 类

javascript - 如何使用按钮 Bootstrap Accordion 更改 (-,+) 符号?

javascript - jQuery/JS : looping function load

c# - 连接字符串的最有效方法?

wpf - 使用数据绑定(bind) WPF ComboBox 诊断性能问题

javascript - AngularJS 根据用户输入切换样式表

javascript - 固定导航栏在动态给出位置时覆盖内容

javascript - jest 不理解流类型和对象解构?

javascript - 如何在javascript中以正确的格式设置json

performance - "Jump if zero"(jz) 更快吗?