一次将click事件附加到多个元素?

时间:2015-12-30 04:40:39

标签: javascript jquery

这是我在jQuery中的代码:

$('.paragraph, .section, .heading').on('input', function (e) {
   localStorage.setItem($(this).attr('id'), $(this).text());
});

是否有可以同时附加所有事件的JavaScript等效文件?

4 个答案:

答案 0 :(得分:26)

您可以将 querySelectorAll 与多个元素选择器一起使用,然后将事件侦听器添加到每个元素

var elements = document.querySelectorAll(".a, .b");
for (var i = 0; i < elements.length; i++) {
  elements[i].addEventListener("click", function() {
    console.log("clicked");
  });
}

答案 1 :(得分:4)

假设您要将click事件添加到多个元素,然后设置其类名称,例如demo

demos= document.getElementsByClassName('demo');
for (var i = 0; i < demos.length; i++) {
    demos[i].addEventListener('click',redirect,false);
}
function redirect(){
    alert(this.id);
}

<强> WORKING FIDDLE

答案 2 :(得分:0)

归功于:

Javascript click event listener on multiple elements and get target ID

&#13;
&#13;
articles = document.getElementsByTagName('button');
for (var i = 0; i < articles.length; i++) {
    articles[i].addEventListener('click',redirect,false);
}
function redirect(){
    alert(this);
}
&#13;
<button></button>
<button></button>
&#13;
&#13;
&#13;

答案 3 :(得分:-2)

Read Jquery Multiple Selector

&#13;
&#13;
$( "div, span, p.myClass" ).css( "border", "3px solid red" );
&#13;
div, span, p {
    width: 126px;
    height: 60px;
    float: left;
    padding: 3px;
    margin: 2px;
    background-color: #eee;
    font-size: 14px;
  }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<body>
 
<div>div</div>
<p class="myClass">p class="myClass"</p>
<p class="notMyClass">p class="notMyClass"</p>
<span>span</span>
&#13;
&#13;
&#13;

相关问题