我在嘗試以下操作,但這不起作用,但是想知道是否有類似的東西?在多個選擇器上設置屬性
基本上,我正在嘗試設置相同屬性的多個元素:
document.querySelectorAll("#id1, #id2, #id3").setAttribute('onclick','return false;');
我使用香草的Javascript,沒有圖書館。
我在嘗試以下操作,但這不起作用,但是想知道是否有類似的東西?在多個選擇器上設置屬性
基本上,我正在嘗試設置相同屬性的多個元素:
document.querySelectorAll("#id1, #id2, #id3").setAttribute('onclick','return false;');
我使用香草的Javascript,沒有圖書館。
querySelectorAll()
將返回您通過需要循環類似陣列的節點列表:
var elems = document.querySelectorAll("#id1, #id2, #id3");
for(var i = 0; i < elems.length; i ++){
elems[i].setAttribute('onclick', 'return false');
}
這有幾種方法,最基本的一條是要遍歷集合,並添加單擊處理程序(在你的情況,你想要一個addEventHandler
不是一個屬性!)
var elements = document.querySelectorAll("#id1, #id2, #id3");
[].forEach.call(elements, function addClickHandler(el) {
el.addEventListener('click', function() { return false; });
};
或許更好pproach如果你有很多元素,就在文檔上設置一個事件處理程序,並查看它是否與查詢選擇器匹配:
var elements = [].slice.call(document.querySelectorAll("#id1, #id2, #id3")); //Turn into an array
document.addEventHandler('click', function(e) {
if (elements.indexOf(e.target) !== -1) { //Element in list was clicked!
return false;
}
};