Sabem quando temos uma lista bem grande de <inputs> do tipo checkbox, onde o usuário terá de selecionar quais são as opções desejadas?
Exemplo:
Check1
Check2 Check3 Check4 Check5 Check6Bom, agora imaginem que esta lista é um pouco maior. Fica extremamente desagradável ter que marcar ou desmarcar um a um.
Uma boa prática é colocar uma opção para o usuário marcar ou desmarcar todos.
Isso é uma tarefa bem fácil de se implementar em Javascript “puro”, mas o jQuery como sempre nos da aquela ajuda.
Solução:
// Atribuímos a variavel ipts todos os inputs encontrados dentro do elemento "#checkboxes"
var ipts = $("#checkboxes").find("input");
function checkAll()
{
// CheckBox que ao ser clicado marca ou desmarca todos elementos
var check = document.getElementById("checkboxCheckAll");
// Testamos o CheckBox para ver se devemos marcar ou desmarcar
check.checked ?
jQuery.each(ipts, function(){
// Se esta "checado" então marcamos todos elementos como checked=true
this.checked = true;
}) :
jQuery.each(ipts, function(){
// Se não esta "checado" então marcamos todos elementos como checked=false
this.checked = false;
});
}
Simples e rápido.
Testei com mais de 50 elementos e a rotina não ultrapassou 2 milisegundos.

Que tal trocar toda rotina final por isso:
jQuery.each(ipts, function(){checked=check.checked} )
Não entendi Juan, o que seria o checked na função anônima?
Mas a função pode ser melhorada com certeza.
Amigo, fiz uma pequena mudança
function checkAll(check){
// Atribuímos a variavel ipts todos os inputs encontrados dentro do elemento “#checkboxes”
var ipts = $(“#checkboxes”).find(“input”);
jQuery.each(ipts, function(){this.checked = check.checked;});
}
Cade o Jquery ?
Como assim Everton?
Queres o código completo?
Não sei qual foi o intuito de passar uma rotina javascript puro + jquery.
Com jquery essa funcionalidade fica muito mais simples.
jQuery.each(ipts, function(){
$(this).attr(‘checked’, false);
});
$(“#checkboxes”).find(“input[type=radio]“).attr(‘checked’, false)
Dei uma enxugada veja como ficou :
var ipts = $(“form”).find(“input”);
function checkAll()
{
// CheckBox que ao ser clicado marca ou desmarca todos elementos
var check = document.getElementById(“lin”);
jQuery.each(ipts, function(){
// Testamos o CheckBox para ver se devemos marcar ou desmarcar
this.checked = (check.checked);
}
)
}