這是因爲他們不支持addEventListener
。詳細信息請參見this question's answers。
但既然你說你正在使用jQuery,您可以...使用jQuery來解決這個問題:
$('#clear').on('click', function() {
["A1","A2","A3","A4","A5","A6", "A1_flip"
].forEach(function(id) {
$("#" + id).prop("checked", false);
});
return false;
});
或實際上,我們可以有點更直接:
$('#clear').on('click', function() {
$("#" + ["A1","A2","A3","A4","A5","A6", "A1_flip"].join(", #")).prop("checked", false);
return false;
});
...它通過從數組中構建選擇器字符串來工作。
我剛剛意識到我假設數組的內容各不相同。如果他們不這樣做,如果你字面上只是想那些具體內容:
$('#clear').on('click', function() {
$("#A1, #A2, #A3, #A4, #A5, #A6, #A1_flip").prop("checked", false);
return false;
});
...或者更好的是,給他們一個共同的class
和使用
$('#clear').on('click', function() {
$(".the-class").prop("checked", false);
return false;
});
如果您不要使用jQuery並對其進行了錯誤標記,請參閱上面的鏈接問題。答案之一有礦,提供hookEvent
功能與跨瀏覽器事件處理涉及:
var hookEvent = (function() {
var div;
// The function we use on standard-compliant browsers
function standardHookEvent(element, eventName, handler) {
element.addEventListener(eventName, handler, false);
return element;
}
// The function we use on browsers with the previous Microsoft-specific mechanism
function oldIEHookEvent(element, eventName, handler) {
element.attachEvent("on" + eventName, function(e) {
e = e || window.event;
e.preventDefault = oldIEPreventDefault;
e.stopPropagation = oldIEStopPropagation;
handler.call(element, e);
});
return element;
}
// Polyfill for preventDefault on old IE
function oldIEPreventDefault() {
this.returnValue = false;
}
// Polyfill for stopPropagation on old IE
function oldIEStopPropagation() {
this.cancelBubble = true;
}
// Return the appropriate function; we don't rely on document.body
// here just in case someone wants to use this within the head
div = document.createElement('div');
if (div.addEventListener) {
div = undefined;
return standardHookEvent;
}
if (div.attachEvent) {
div = undefined;
return oldIEHookEvent;
}
throw "Neither modern event mechanism (addEventListener nor attachEvent) is supported by this browser.";
})();
然後:
hookEvent(document.getElementById('clear'), 'click', function(e) {
["A1","A2","A3","A4","A5","A6", "A1_flip"
].forEach(function(id) {
document.getElementById(id).prop("checked", false);
});
e.preventDefault();
});
您已經標記問題jQuery的,但你不能在這個問題使用任何jQuery的。這個問題是人們使用jQuery的一個問題。 –
這個id是什麼樣的元素? 您將問題標記爲HTML,您應該分享您的html代碼 –
請注意正確標記。這個問題與這些標籤無關:[tag:css3],[tag:function],[tag:frontend]或[tag:html]。它**確實需要處理[tag:javascript]。 –