我正在尝试为div 中的所有<button>
元素注册相同的事件,因为我有 24 个元素,所以我尝试以这种方式使用 Jquery 的$.each()
,它将div 读取为元素而不是按钮
$("#online-hours").each(function () {
var element = this;
$(element).click(function () {
if ($(element).hasClass('btn-success')) {
$(element).toggleClass('btn-success');
$(element).addClass('btn-danger');
} else if ($(element).hasClass('btn-danger')) {
$(element).toggleClass('btn-danger');
$(element).addClass('btn-success');
}
});
});
如果 id 在容器上,你应该调用
$("#online-hours button").each(function () {
最好使用事件委派而不是"each":
$("#online-hours").on("click", "button", function (event) {
var $button = $(event.currentTarget);
// Do something with your $button;
});
var div = document.getElementById('myDiv');
var list = div.querySelectorAll('button');
var i = list.length;
while(i--){
list[i].addEventListener('click', function(e) { //doesn't have to be click
//do stuff
}
}
编辑,如果你的意思是按钮标签,请使用我的答案,如果你的意思是输入标签类型='按钮'使用baao的
你编写代码的方式看起来你已经same id multiple time
不应该更好地使用class。您可以尝试:
$("button").each(function () {
//code here............
});
或
$(".online-hours button").each(function () {
//code here............
});