/ / un codice che non capisco bene in jquery - jquery

un codice che non capisco bene in jquery - jquery

1,$("input[id^="checkbox"]").click(function()

cosa è il id^="checkbox" senso?

2,

var checkall = $("#checkall");
var boxes = $("input[type="checkbox"]").not(checkall);

checkall.click(function () {
boxes.attr("checked", this.checked);
});
boxes.change(function() {
checkall[0].checked = this.checked && boxes.filter(":checked").length === boxes.length;
});

un, var boxes = $("input[type="checkbox"]").not(checkall);

questa linea significa "dare tutto" type=checkbox l'input alle scatole si aspetta il id=checkall"

che significato hanno queste righe? checkall[0].checked = this.checked && boxes.filter(":checked").length === boxes.length; e potrei cambiare questo boxes.attr("checked", this.checked); a boxes.attr("checked", checked); grazie

risposte:

2 per risposta № 1
  1. tutti input elementi che hanno ID che iniziano con lettere "checkbox" come id = checkbox, id = checkbox1, id = checkboxABC etc

  2. var boxes = $("input[type="checkbox"]").not(checkall); significa ottenere tutti gli elementi di input di tipo checkbox tranne quello con id = checkall

  3. checkall[0].checked = this.checked && boxes.filter(":checked").length === boxes.length; imposta $ ("# checkall") "seleziona la proprietà su true se tutte le caselle di controllo sono nella boxes è controllato Questo viene fatto controllando se il numero totale di caselle di controllo selezionate è uguale al numero totale di checkbox. La prima parte this.checked non è richiesto ma non fa male Se l'elemento corrente è deselezionato questa prima parte impedirà l'esecuzione della seconda parte e imposterà lo stato su falso, che è quello che vuoi.

  4. No, non puoi cambiare boxes.attr("checked", this.checked) a boxes.attr("checked", checked). Potresti averlo provato tu stesso.

se qualcuno si sta chiedendo come ho risposto a questi, stavo aiutando l'OP a risolvere Questo domanda di ieri e so cosa OP stava chiedendo.