PyCharm对以下代码说:" jQuery使用效率低下"没有给出任何有价值的解释我不知道如何才能提高效率:
$('#popup-key input:eq(18)').val(key.labelcolor);
$('#popup-key input:eq(19)').val(key.color);
此代码相同:
var i;
for (i = 0; i < 9; ++i) {
var value = $('#popup-key input:eq(' + (i * 2) + ')').val();
var size = $('#popup-key input:eq(' + (i * 2 + 1) + ')').val() || defaultSettings.f;
if (value.trim() != '') {
clone.labels.push(new Label(value, inputToPositions[i], size));
}
}
答案 0 :(得分:3)
存储集合以避免每次dom搜索相同的选择器组
var $input = $('#popup-key input');
$input.eq(18).val(key.labelcolor);
$input.eq(19).val(key.color);
//etc..
答案 1 :(得分:1)
您正在进行大量类似的查询并使用:eq()
选择器。创建单个查询然后迭代结果更有效。这是因为每次查询时,都必须解析选择器字符串,然后检查整个文档中是否有与该选择器匹配的元素。
$('#popup-key input').each(function(el, i) {
$(el).val();
});
只执行一次查询,each()
函数已经知道需要处理哪些元素,而不必进行任何不必要的选择。任何时候你可以消除多余的查询,你将使你的脚本更有效。