jquery:no eliminar filas de la tabla html
-
21-12-2019 - |
Pregunta
Tengo una tabla html y necesito eliminar algunas filas según los identificadores pasados por una función.
Aquí está mi código:
<html>
<script>
function myfunc(){
var dat ="6|21|22|"; // this string is a dynamic string coming
// from another function. I've hardcoded it
// for clarity
var aryDat0 = dat.split('|');
//delete empty elements
var aryDat = aryDat0.filter(function(v){return !!v});
for (var i = 0, l = aryDat.length; i <l; i++) {
$( "'#" + aryDat[i] + "'" ).remove();
}
}
</script>
<table name="mytab" border="1px">
<tr id="6">
<td>6</td>
<td>ada</td>
</tr>
<tr id="21">
<td>21</td>
<td>eda</td>
</tr>
<tr id="22">
<td>22</td>
<td>ida</td>
</tr>
</table>
<input type="button" value="test"
onclick="javascript:myfunc(); return false;">
</html>
Cuando presiono el botón "probar", no pasa nada y entro en la consola de Chrome:
Uncaught Error: Syntax error, unrecognized expression: '#6'
¿¿Por qué??Si en lugar de:
$( "'#" + aryDat[i] + "'" ).remove();
Sí:
$('#21').remove();
Funciona muy bien.
Solución
Este error Error no detectado:Error de sintaxis, expresión no reconocida:'#6' establece claramente que $("'#6'")
es un selector Jquery no válido
Intentar,
$( "#" + aryDat[i]).remove();
Otros consejos
Simplemente concatenar el valor de ID a #
$( '#' + aryDat[i] ).remove();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow