Javascript 我可以将多个命令附加到同一个jQuery选择器吗
简言之: 这是:Javascript 我可以将多个命令附加到同一个jQuery选择器吗,javascript,jquery,selector,Javascript,Jquery,Selector,简言之: 这是: $('#password').html('Weak').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'}); 等于这个吗 $('#password').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'}); $('#password').html('Weak') 它们对我来说都是一样的——但我只是想确定它们确实是一样的……几乎是一样的 $('
$('#password').html('Weak').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'});
等于这个吗
$('#password').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'});
$('#password').html('Weak')
它们对我来说都是一样的——但我只是想确定它们确实是一样的……几乎是一样的
$('#password').html('Weak').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'});
为选择器#password
构建一次jQuery
对象
$('#password').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'});
$('#password').html('Weak')
为选择器#password
构建一个jQuery
对象两次
这次重要吗不是真的:#jQuery中有一些东西
可以快速使用document.getElementById
来匹配正确的元素
然而,如果你有
$('input[value^=your_complex_selector],div div div,img[src$=.jpg]')
你不停地调用它却不缓存它。。。你可以看到我们要去哪里
通过将jQuery对象分配给变量,可以在不损失可读性的情况下获得链接的性能优势:
var password = $('#password');
password.css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'});
password.html('Weak');
这通常是一样的,但是有些方法会影响所选元素的集合,所以不一定相同。在你的特殊情况下,是的,完全一样
使用“链”更有效,因为DOM只需搜索一次。在您的示例中,通过“id”进行查找时,这并不是一个巨大的节约,但确实是一件了不起的事情。答案是几乎是肯定的,它们是相等的,但第一次查询会更快
第二个查询在文档中搜索两次#password元素是的,这称为链接,比第二个示例更可取,因为在第二个示例中,您将再次使用find the DOM元素,而不是使用第一个示例中已经使用的元素是的,链接jquery命令总是更好的。这将保存jquery以每次获取元素
$('#password').html('Weak').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'});
比即使它们具有相同的功能也要好
$('#password').css({'background-color' : '#FF0000' , 'color' : '#FFFFFF'});
$('#password').html('Weak')
是的,结果是相同的,但是使用第一种方法,您只需找到该元素一次,jQuery将只创建一个jQuery对象,从而节省内存 这叫做链锁。jQuery等库的一个重要特性 您可以通过将jQuery对象分配给变量来优化调用,这样就不必多次调用jQuery函数,从而节省内存和速度
var $password = $('#password');
$password.css({
'background-color': '#FF0000',
'color': '#FFFFFF'
});
$password.html('Weak');
在上一个示例中,您的意思是:obj.css…&obj.html。。。是吗?@Alon:当然,谢谢:P(尽管我很懒,把
obj
改名为password
,而不是把两个变量改为obj
:P)