Veo que lo entendiste perfectamente
, ahora bien, no especificas en qué parte deseas incluir el <select>, si fuera en lugar de los checkbox, sería así:
Código Javascript
:
Ver originalvar filtrar = document.getElementById("filter"),
menus = document.getElementsByTagName("ul"),
total = menus.length,
salida = document.getElementById("salida");
filtrar.addEventListener("click", function(){
var dataString = "";
for (i = 0; i < total; i++){
var opciones = menus[i].getElementsByTagName("li");
for (j = 0, subTotal = opciones.length; j < subTotal; j++){
var select = opciones[j].getElementsByTagName("select")[0];
dataString += dataString.length ? "&" + opciones[j].id + "=" + select.value : opciones[j].id + "=" + select.value;
}
}
salida.innerHTML = "Resultado: " + dataString;
}, false);
Como verás, cambié el nombre de la etiqueta que tomo, en lugar de "input", ahora es "select", además, ya no necesito verificar si está marcado porque los <select> tienen un valor seleccionado por defecto que es el primero, si eliges otro, se mostrará el elegido. Ahora bien, así como está, mostrará los valores de todos los <select> y no creo que eso sea lo que quieres, de modo que te conviene aplicar una restricción:
Código Javascript
:
Ver originalvar filtrar = document.getElementById("filter"),
menus = document.getElementsByTagName("ul"),
total = menus.length,
salida = document.getElementById("salida");
filtrar.addEventListener("click", function(){
var dataString = "";
for (i = 0; i < total; i++){
var opciones = menus[i].getElementsByTagName("li");
for (j = 0, subTotal = opciones.length; j < subTotal; j++){
var select = opciones[j].getElementsByTagName("select")[0];
if (select.value > 0)
dataString += dataString.length ? "&" + opciones[j].id + "=" + select.value : opciones[j].id + "=" + select.value;
}
}
salida.innerHTML = "Resultado: " + dataString;
}, false);
Si te fijas, le añadí una opción con valor igual a cero al <select>, siendo ésta la primera opción, la que aparecerá por defecto, mientras que en el script, solamente añado el valor del <select> si es que es mayor a cero, de este modo, solamente se añadirán a
dataString los valores de los <select> en los que el usuario haya elegido valores.
Saludos