我正在尝试为div中的所有<button>
元素注册相同的事件,因为我有24个,所以我尝试以这种方式使用Jquery&#39; $.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');
}
});
});
答案 0 :(得分:4)
如果id在容器上,则应该调用
$("#online-hours button").each(function () {
答案 1 :(得分:0)
您最好使用事件委派而不是“每个”:
$("#online-hours").on("click", "button", function (event) {
var $button = $(event.currentTarget);
// Do something with your $button;
});
答案 2 :(得分:0)
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
}
}
编辑,如果你的意思是按钮标签使用我的答案,如果你的意思是使用type ='button'的输入标签使用baao的
答案 3 :(得分:0)
你编写代码的方式看起来就像你有same id multiple time
这样不应该更好地使用类。
你可以试试:
$("button").each(function () {
//code here............
});
或
$(".online-hours button").each(function () {
//code here............
});