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.

¿Fue útil?

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
scroll top