Laden Sie den Code direkt hoch
Der Code lautet wie folgt, die Funktion ?Alles ausw?hlen“ ist nicht einfach zu verwenden
var _select_all = document.getElementById("select_all");
var _input = document.querySelectorAll("#shop_content ul input[type=checkbox]");
_select_all.addEventListener("click",function() {
for(var i = 0;i<_input.length;i++) {
_input[i].checked="checked";
}
})
?ndern Sie einen Satz
var _select_all = document.getElementById("select_all");
_select_all.addEventListener("click",function() {
var _input = document.querySelectorAll("#shop_content ul input[type=checkbox]");
for(var i = 0;i<_input.length;i++) {
_input[i].checked="checked";
}
})
Warum wird der Code normal ausgeführt, wenn _input unten platziert wird? K?nnen wir in der Rückruffunktion keine externen Variablen entsprechend dem Umfang abrufen?
光陰似箭催人老,日月如移越少年。
var _select_all = document.getElementById("select_all");
var _input = document.querySelectorAll("#shop_content ul input[type=checkbox]");
console.log(_input);
_select_all.addEventListener("click",function() {
for(var i = 0;i<_input.length;i++) {
_input[i].checked="checked";
}
})
log出來看看就知道了,如果是undefined的話就知道問題出在那了。
一個是事先查好節(jié)點(diǎn)緩存起來,一個是點(diǎn)擊的時(shí)候?qū)崟r(shí)去查節(jié)點(diǎn)。如果 #shop_content ul input[type=checkbox] 這個選擇器對應(yīng)的節(jié)點(diǎn)不會變化的話兩種方法是一樣的,而且緩存的效率比較高。如果對應(yīng)節(jié)點(diǎn)可能刪除、增加或更換,必須使用第二種方法,每次點(diǎn)擊的時(shí)候?qū)崟r(shí)去查找節(jié)點(diǎn)