简体   繁体   English

如何在javascript nodelist中的每个元素中添加函数

[英]How to add function in every single element in javascript nodelist

so here's an example of the working code所以这是工作代码的一个例子

const test = document.getElementById('test')
const time = 1000
var timer;

test.addEventListener('touchstart', hlt)
test.addEventListener('touchend', endt)


function onlongtouch(){
    console.log('it has been 600 milisecond')
}

function hlt(){
  console.log('test');
  timer = setTimeout(onlongtouch, time)
  console.log(timer)

}

function endt(){
    if(timer){
        clearTimeout(timer)
    }
}

And the HTML和 HTML

 <div class="data" id="test">
            <div class="num"><p>1</p></div>
            <div class="title"><p>Crush It</p></div>
            <div class="author"><p>Gary Vaynerchunk</p></div>
            <div class="ISBN"><p>132132312</p></div>
        </div>
        <div class="data">
            <div class="num"><p>2</p></div>
            <div class="title"><p>Crush It</p></div>
            <div class="author"><p>Gary Vaynerchunk</p></div>
            <div class="ISBN"><p>132132312</p></div>
        </div>
        <div class="data">
            <div class="num"><p>3</p></div>
            <div class="title"><p>Crush It</p></div>
            <div class="author"><p>Gary Vaynerchunk</p></div>
            <div class="ISBN"><p>132132312</p></div>
        </div>

so i was taking a single element with an id of "test" and add the touch functionality to it, but what if i replace const test = document.getElementById('test') with document.querySelectorAll('data') im grabbing the same element but instead of a single element it's a whole nodelist full of element.因此,我采用了一个 ID 为“test”的单个元素并为其添加了触摸功能,但是如果我将const test = document.getElementById('test')替换为document.querySelectorAll('data')怎样呢?相同的元素,但不是单个元素,而是一个充满元素的整个节点列表。 How do i add functionality to all of them?我如何为所有这些添加功能?

Thank you in advance!先感谢您!

let elements = [...document.querySelectorAll('.data')];
for(let el of elements) {
  el.addEventListener('touchstart', hlt)
  el.addEventListener('touchend', endt)
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM