我在这方面遇到了一些困难。在 Backbone 中,我有一个这样的函数:
functionOne: function(){
$('#myTExtbox-' + budgetLine.attr('id')).on('change keyup paste', function(){
that.mySecondFunction(this);
});
}
在这种情况下,this
是一个 textbox
,它在 table
中,在 div
中.然后:
mySecondFunction: function(tb){
var tbody = tb.parentElement.parentElement.parentElement.parentElement.parentElement;
//gets main parent, which is a tbody, inside a table, inside a div
}
然后我想遍历 tbody
,遍历每一行并在特定单元格中找到一个 textbox
。问题是这段代码:
$.each(tbody, function(index, item){
cost = item;
var t= index;
});
似乎不允许我访问任何项目。在此示例中,如果我尝试执行以下操作:
item.getElementById('test');
我得到一个错误:
TypeError: Object #<HTMLCollection> has no method 'getElementById'
为什么我不能遍历这个对象并访问其中的对象?
谢谢
更新
这是一个 fiddle :http://jsfiddle.net/HX8RL/14/
本质上,应该发生的是:当文本框发生变化时,我想遍历 tb 的父表中的所有行并对所有 Tb 值求和。请记住,所有 tb 都在同一个单元格位置,因为其他地方可能还有我不想包含的其他 tb。
最佳答案
TBody
不会有任何集合
尝试使用 children()
代替
$.each(tbody.children('tr'), function(index, item){
cost = item;
var t= index;
});
Demo Fiddle
关于javascript - 如何遍历 htmlCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22686719/