Haber amigo trato de entenderlo:
Código Javascript
:
Ver originalvar filtrar = document.getElementById("filter"), //Hace referencia al elemento cuyo id sea filter en este caso el boton
menus = document.getElementsByTagName("ul"), //En un arreglo se guardan todos los ul que existan en el documento
total = menus.length, //Calcula el total de elementos ul en este caso 2
salida = document.getElementById("salida");
filtrar.addEventListener("click", function(){ //Dispara un evento al hacer click en el boton
var dataString = "";
for (i = 0; i < total; i++){ //Hace una bucle por la cantidad de elementos ul encontrados en este caso 2
var opciones = menus[i].getElementsByTagName("li"); //En una arreglo se guardan los li por ul el cual hace referencia la variable i
for (j = 0, subTotal = opciones.length; j < subTotal; j++){ //Repite por el numero de elementos li encontrados
var checkbox = opciones[j].getElementsByTagName("input")[0]; //Guarda en un arreglo los input encontrados por elemento li empesando por el primero
if (checkbox.checked) // si se encuentra un input checkbox checkeado
dataString += dataString.length ? "&" + opciones[j].id + "=" + checkbox.value : opciones[j].id + "=" + checkbox.value;
//Concantena la misma variable dependiendo el valor de una sentencia if y else (no me queda muy claro que muy claro que hace o significa +=)
}
}
salida.innerHTML = "Resultado: " + dataString; //imprime la variable
}, false);