嘿所以我试图用某个类来定位页面中的所有元素。我遇到了解决查询更改功能的问题。所以我尝试过很多东西但仍然没有开火。当我加载页面时它会在开始时触发,但从不在它之后触发,我收到一条错误消息,指出'this'没有更改功能。但是,当我记录它的内容时,它清楚地显示它是一个复选框。无论如何任何帮助将不胜感激,因为这应该是一件非常容易的事情,我想我错过了一些小事。
$(".rcbCheckBox")
.each(function () {
console.log(this);
this.change(console.log("Changed"));
});
});
答案 0 :(得分:5)
您正在调用this.change
,它将返回undefined
,因为change
是一个jQuery函数。要使其工作,请使用:
$(this).change(function(){console.log(this)})
答案 1 :(得分:1)
$(".rcbCheckBox")
.each(function () {
console.log($(this));
});
});
使用$(this)代替此。
答案 2 :(得分:0)
change()函数是jQuery API的一部分。 纯DOM对象不包含jQuery的功能。您可以创建一个新的jQuery对象,将DOM对象传递给jQuery函数:
var checkbox = jQuery(this);
或简称:
var checkbox = $(this);
此外,您的代码作为change
事件的处理程序传递console.log("Changed")
返回的内容,这不是函数。
你应该做这样的事情
$(this).change( function(){ console.log("Changed"); });
另外,请注意语法错误。您的示例中还有一个});
。考虑到之前提到的所有内容,您可以尝试以下方式:
$(".rcbCheckBox").each(function () {
console.log(this);
var checkbox = $(this);
var callback = function(){
console.log("Changed");
}
checkbox.change(callback);
});