Jam*_*sco 47 javascript methods dom
例1
Element1.addEventListener ("input", function() {
this function does stuff
});
Run Code Online (Sandbox Code Playgroud)
例2
Element1 && Element2.addEventListener("input", function() {
this function does stuff
});
Run Code Online (Sandbox Code Playgroud)
它可能在语法上不正确,但是有没有办法可以同时给两个元素同一个Dom方法(同一行)而不必将它们分开?
GMa*_*olo 78
好吧,如果你有一个包含你可以做的元素的数组:
let elementsArray = document.querySelectorAll("whatever");
elementsArray.forEach(function(elem) {
elem.addEventListener("input", function() {
//this function does stuff
});
});
Run Code Online (Sandbox Code Playgroud)
Ayu*_*rma 19
事件冒泡是javascript中的重要概念,因此如果您可以直接在DOM上添加事件,则可以保存一些代码行,无需循环:
document.addEventListener('click', function(e){
if(e.target.tagName=="BUTTON"){
alert('BUTTON CLICKED');
}
})
Run Code Online (Sandbox Code Playgroud)
Adr*_*ian 15
一条线
document.querySelectorAll("whatever").forEach(elem => elem.addEventListener("input", fn))
Run Code Online (Sandbox Code Playgroud)
小智 11
如果您不想定义单独的elementsArray变量,则可以从具有两个元素的未命名数组中调用forEach。
[ Element1, Element2 ].forEach(function(element) {
element.addEventListener("input", function() {
this function does stuff
});
});
Run Code Online (Sandbox Code Playgroud)
我总是建议委托 - 如果输入位于同一个容器中,那么你可以这样做
window.addEventListener("DOMContentLoaded", function() { // on page load
document.getElementById("inputContainer").addEventListener("input", function(e) { // passing the event
const tgt = e.target;
const id = tgt.id;
console.log("You typed in",id)
});
});Run Code Online (Sandbox Code Playgroud)
<div id="inputContainer">
<h1>Start typing or paste</h1>
<input id="element1">
<input id="element2">
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60085 次 |
| 最近记录: |