我在O'Reilly jQuery Cookbook (配方3.1)中看到了这个例子:
var urls = [];
$("div#post a[href]").each(function(i){
urls[i] = $(this).attr('href');
});
alert(urls.join(","));
我理解$().each(fn)
在所选DOM元素的上下文中运行该函数。我不明白的是:为什么要将DOM元素包装在jQuery对象中?
在我看来,urls[i] = this.href;
在这里会更直接。
答案 0 :(得分:4)
jQuery的主要目标之一是充当程序员与潜在不可预测的浏览器定义函数之间的一致层。所以,是的,通常最好的做法是将jQuery包装用于任何DOM函数。
答案 1 :(得分:1)
通常我尝试在本机JavaScript中执行所有JavaScript并在适当的地方使用jQuery。话虽这么说,如果你没有将DOM元素包装在jQuery对象中,那么你将无法访问jQuery方法。
答案 2 :(得分:0)
使用jQuery Object进行包装允许与其他jQuery函数链接。 jQuery的主要目的是实现跨浏览器的兼容性。它还简化了我们使用JavaScript的方式。
例:
$('#id').attr(...).css(...).delay().fadeIn().fadeOut().remove()
....等等。使用普通的Javascript编写代码需要花费很多代码,时间和精力,更不用说保持浏览器兼容性了。