如何获取元素的集合?
var tst = this.tbl_list.find('col');
alert('length = '+tst.length);
for(var key in tst){
alert(tst[key][0].tagName);
}这会警告length = 7 (这是正确的计数),但每个元素都是undefined!?
发布于 2011-12-05 18:35:18
这是因为当你使用for in时,你也会遍历所有的jQuery方法(find,children等);而且这些方法都没有[0].tagName (更多关于为什么要看JavaScript for...in vs for的信息)。
相反,您应该使用each(),或者使用for (;;;)循环;
var tst = this.tbl_list.find('col');
alert('length = '+tst.length);
for(var i=0;i<tst.length;i++){
alert(tst[i].tagName);
}您可以在此JSFiddle;http://jsfiddle.net/nTCSY/中看到使用它们的区别
使用each(),你将拥有;
tst.each(function () {
alert(this.tagName);
});发布于 2011-12-05 18:35:46
如果没有看到你的标记,很难说出哪里出了问题,但是像这样的东西应该是有效的-
tst.each(function() {
alert(this.tagName)
});演示- http://jsfiddle.net/UjfUy/1/
发布于 2011-12-05 18:28:50
也许你需要each
https://stackoverflow.com/questions/8383877
复制相似问题