Javascript 未捕获的TypeError:元素[i]。attr不是函数
这是我的代码:Javascript 未捕获的TypeError:元素[i]。attr不是函数,javascript,jquery,Javascript,Jquery,这是我的代码: function () { var container = document.getElementById('data-table'); var elements = container.getElementsByTagName("input"); for (i = 0; i < elements.length; i++) { elements[i].on("ifChanged", handle_company_state(eleme
function () {
var container = document.getElementById('data-table');
var elements = container.getElementsByTagName("input");
for (i = 0; i < elements.length; i++) {
elements[i].on("ifChanged", handle_company_state(elements[i].attr('id')));
}
}
function handle_company_state(element_id) {
//....
}
函数(){
var container=document.getElementById('data-table');
var elements=container.getElementsByTagName(“输入”);
对于(i=0;i
当我试图运行它时,我得到以下错误:
未捕获的TypeError:元素[i]。attr不是函数
为什么?使用
$(elements[i]).attr()
$.attr()
是jQuery方法。同样的修复程序适用于.on()
函数
$(elements[i]).on("ifChanged", handle_company_state($(elements[i]).attr('id')));
既然您在这里使用jQuery
你可以少写
改为使用方法.attr
,并改为.on
。和
函数(){
var container=document.getElementById('data-table');
var elements=container.getElementsByTagName(“输入”);
对于(i=0;i
我想您正在寻找类似于:
function () {
var elements = $("#data-table input");
for (i = 0; i < elements.length; i++) {
$(elements[i]).on("ifChanged", handle_company_state($(elements[i]).attr('id')));
}
}
function handle_company_state(element_id) {
//....
}
函数(){
变量元素=$(“#数据表输入”);
对于(i=0;i
您正在使用jQuery吗?.on()和.attr()方法必须应用于jQuery对象$(elements[i]).attr(…等等。谢谢,但是现在我得到了这个错误:Uncaught TypeError:elements[i].on不是一个function@AdamAzad为什么你认为TS需要jQiery?很明显,他没有使用它。加上你的答案,如果你想让你的代码为他工作,他可以如何添加jquery库。@Darth,1-jquery被标记。2-,他正在使用on()
和attr()
方法。这些是我的线索。:)你知道document.getElementById('
比$(“#u id”)快10倍
?我也知道这还不足以影响用户体验。这是简单性和性能之间的折衷。我宁愿坚持使用jQuery,因为它更灵活,代码更干净。
function () {
var container = document.getElementById('data-table');
var elements = container.getElementsByTagName("input");
for (i = 0; i < elements.length; i++) {
elements[i].addEventListener("ifChanged", handle_company_state(elements[i].getAttribute('id')));
}
}
function handle_company_state(element_id) {
//....
}
function () {
var elements = $("#data-table input");
for (i = 0; i < elements.length; i++) {
$(elements[i]).on("ifChanged", handle_company_state($(elements[i]).attr('id')));
}
}
function handle_company_state(element_id) {
//....
}