jQuery函数返回什么?
问题描述:
我想了解什么是一个jQuery中选择,所以我写了这个,按字母顺序排序的属性:jQuery函数返回什么?
var X = $('p:first');
console.log(X);
$(X).each(function(index,Element) {
var prop;
var arr = [];
for (prop in Element) {
arr[arr.length] = prop;
}
arr = arr.sort();
for (var i=0,ii=arr.length;i<ii;i++) {
console.log(arr[i]);
}
});
这是您将属性名称进行排序,还是我工作太辛苦的方式吗?
答
您的代码正在获取为paragraph html element定义的所有属性,包括继承属性。
另外一个方式来获得和整理所有这些属性是使用内置keys
方法上Object
,
Object.keys($('p')[0]).sort()
或在普通的JavaScript相当于
Object.keys(document.getElementsByTagName('p')[0]).sort()
看起来好像没什么问题。如果你真的对每个属性的作用感兴趣,请检查jQuery src。它并不难,让jQuery更有意义。 – joekarl 2011-06-10 21:38:12
看起来正确。为了便于阅读,我会使用'arr.push(prop)',但我想这是个人风格。另外,请注意,您也将获得任何继承的属性;如果你不想要,使用'if(Element.hasOwnProperty(prop))'。另一件事是风格问题,但更重要的是:不要使用以大写字母开头的变量,除非它们被称为构造函数。如果一个函数被'new'调用并且没有它,那么就有很大的区别,我们通常只有这条约定(构造函数以大写字母开头,常规函数没有)。 – Amadan 2011-06-10 21:39:19
你得到的元素是对实际DOM节点的引用,所以它们的属性不是很神秘:-) – Pointy 2011-06-10 21:57:37