Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用多个id';s_Javascript - Fatal编程技术网

Javascript 如何使用多个id';s

Javascript 如何使用多个id';s,javascript,Javascript,我认为有一个简单的答案,但我找不到正确的解决办法。我知道必须使用querySelectorAll来完成,但我不知道在这种情况下如何使用它 我有ID为#modalA、#modalB和#modalC的元素。我不想重复代码。所以我想知道这方面的最佳实践是什么 无法使用getElementByClassName,因为我无法更改标记 var getModalsA=document.getElementById('modalA'); var getModalsB=document.getElementBy

我认为有一个简单的答案,但我找不到正确的解决办法。我知道必须使用
querySelectorAll
来完成,但我不知道在这种情况下如何使用它

我有ID为
#modalA
#modalB
#modalC
的元素。我不想重复代码。所以我想知道这方面的最佳实践是什么


无法使用getElementByClassName,因为我无法更改标记

var getModalsA=document.getElementById('modalA');
var getModalsB=document.getElementById('modalB');
var getModalsC=document.getElementById('modalC');
getModalsA.addEventListener('touchmove',函数(e){
e、 预防默认值();

},假)我不确定您是否只是在进行一次小的重构

比如:

function addListenersToElement(id) {
  var el = document.getElementById(id);
  el.addEventListener('touchmove', function(e) {

      e.preventDefault();

  }, false);
}

var ids = ['modalA', 'modalB', 'modalC'];
ids.forEach(addListenersToElement);

我会使用jQuery或类似工具来处理类似的内容(或轻量级变体),但如果您无法更改页面标记,那么最好的办法可能是在较小的函数中重构代码。

可能会重复“不使用ID,使用类”。无法使用getElementByClassName,因为我无法更改标记。需要使用现有标记的解决方案:(