Hola gente de Stackoverflow, quiero implementar un filtro para algún tipo de tabla en javascript. mi búsqueda de texto funciona como se esperaba, pero tengo algunos problemas para obtener un elemento "seleccionar" con js ...
Algún código del mismo:
function doSomething(){
var table, tr, td, i;
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
for(i = 0; i < tr.length-1; i++){
td = tr[i].getElementsByTagName("td")[2];
var e = td.getElementById("ABC");
if(document.getElementById("cb1").checked && e.options[0].value == 0){
tr[i].style.display = "none";
}else{
tr[i].style.display = "";
}
}
}
<label>click me <INPUT type="checkbox" id="cb1" onclick="doSomething();"></label>
<table id="myTable">
<tr><td>Something</td><td>Some other Thing</td><td><select id="ABC" name="sel1">
<option value=0>Default</option>
<option value=1>Not Default</option>
</select></td></tr>
</table>
https://jsfiddle.net/tnufmuLu/3/
2 respuestas
Podrías actualizar tu código así
function doSomething(){
var table, tr, td, i;
table = document.getElementById("myTable");
tr = table.getElementsByTagName("tr");
console.log(tr);
for(i = 0; i < tr.length; i++){
td = tr[i].getElementsByTagName("td")[2];
var e = td.getElementsByTagName("select")[0];
alert('selected value is:' + e.options[e.selectedIndex].value);
if(document.getElementById("cb1").checked && e.options[0].value == 0){
tr[i].style.display = "none";
}else{
tr[i].style.display = "";
}
}
}
Aquí está la demostración actualizada Si desea obtener el valor seleccionado de un menú desplegable, puede usar su atributo selectedIndex .
Por cierto, no debemos definir varios elementos HTML con el mismo ID (consulte aquí )
Actualicé tu violín y creé una nueva DEMO
He corregido algunos errores en su código:
for(i = 0; i < tr.length; i++){
Y
var e = document.getElementById("ABC");
Y también, puse el código javascript en la parte superior del código HTML en una etiqueta <script>
ya que estaba dando un error undefined function
.
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.