应该避免哪些jQuery方法支持内置方法/属性?
示例:
$('#el').each(function(){
// this.id vs $(this).attr('id');
// this.checked vs $(this).is(':checked');
});;
答案 0 :(得分:3)
在这些情况下,我使用直接的javascript属性,例如this.id
:
我在以下时间使用jQuery访问方法:
例如:str = $(elem).html()
与str = elem.innerHTML
相比没有任何优势,但$(elem).html(str)
确实比elem.innerHTML = str;
有一些优势,因为jQuery方法会清理对象被删除的内容比innerHTML方式更完整。
答案 1 :(得分:1)
这是一个广泛的问题,但这里有一些我认为有用的指南。 您可以/应该在以下情况下使用本机js方法:
在任何情况下,第一个条件应该是真的:)其他人可以合并或分开。我知道他们都是有争议的,可以引发长期的哲学谈判,但我认为它们是很好的起点并总结了很多案例。
但最重要的是 - 如果您没有理由避免使用库方法,请使用它们!
答案 2 :(得分:1)
大多数DOM属性在所有主流浏览器中都没有问题。对于您提到的两个示例(id
和checked
),DOM属性是100%可靠的,并且应该优先使用jQuery等效的可靠性,性能和可读性。
对应于布尔属性的所有属性也是如此:readonly
,disabled
,selected
是常见属性。 Here are some more。 className
也是100%稳固的。对于其他属性和属性,由您决定。如果您不确定并且可以承受失去一些性能(通常是这种情况),那么使用像jQuery这样的库可能是最好的方法。
Stack Overflow常规Andy Earnshaw在博客中写道:http://whattheheadsaid.com/2010/10/utilizing-the-awesome-power-of-jquery-to-access-properties-of-an-element