我的IDE抱怨jQuery选择器的效率不高,我想知道是否有更好的方法来实现这一点。感谢
.infomsg {display:none;}
答案 0 :(得分:1)
将$('#login2')
分配给var:
var $login = $('#login2');
$login.addClass('inactive');
$login.find('input').prop('disabled', true);
也应该能够连锁,但(对我来说)可能会变得混乱:
$login.addClass('inactive').find('input').prop('disabled', true);
答案 1 :(得分:1)
当您的第二个查询可以定位#login2
元素下面的DOM的特定子集时,您从两个查询的DOM顶级开始就会产生效率低下。
使用
将第一个查询结果缓存到变量中var $login = $('#login2');
然后调用.find
进行下一个查询。这样jQuery只需要遍历较小的子树来查找input
元素。
答案 2 :(得分:0)
jQuery有.prop()
来更改元素属性,因此在使用.attr()
时会有效,建议使用.prop()
:
$("#login2>input").prop("disabled", true);