如何獲取元素集合?獲取元素集合
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