如何获取元素集合?获取元素集合
var tst = this.tbl_list.find('col');
alert('length = '+tst.length);
for(var key in tst){
alert(tst[key][0].tagName);
}
此提醒length = 7
(这是正确的计数),但每一个元素是undefined
!?
如何获取元素集合?获取元素集合
var tst = this.tbl_list.find('col');
alert('length = '+tst.length);
for(var key in tst){
alert(tst[key][0].tagName);
}
此提醒length = 7
(这是正确的计数),但每一个元素是undefined
!?
这是因为你使用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);
});
也许你需要each
做到像这样(使用jQuery):
var elements = this.tbl_list.find('col');
$.each(elements, function(index, element){
alert(element.tagName);
});
试试这个:
var tst = this.tbl_list.find('col');
alert('length = '+tst.length);
for(var i=0;i<tst.length;i++){
alert(tst[i].tagName);
}
很难说什么错,没有看到你的标记,但这样的事情应该工作 -
tst.each(function() {
alert(this.tagName)
});
使用.get()或.eq()从集合中获取单个元素dom物体的离子。
var tst = this.tbl_list.find('col');
alert('length = '+ tst.length);
for(i=0; i< tst.length ; i++ ){
alert(tst.get(i).tagName);
//or tst.eq(i)
}
另一种方式是.each()遍历dom元素。
.each() method is designed to make DOM looping constructs concise .
例如
$('li').each(function(index) {
alert(index + ': ' + $(this).text());
});
您的解决方案,这应该是这样的:
tst.each(function() {
alert(this.tagName)
});
都试过..没有运气 – clarkk
什么是 “this.tbl_list”?请提供更多的代码 – Mike