JQuery - Uncaught SyntaxError: Unexpected identifier

user2779622 picture user2779622 · Sep 14, 2013 · Viewed 9k times · Source

I have the following code with JQuery and i get "Uncaught SyntaxError: Unexpected identifier" error in line var nueva fila = $(document.createElement('tr'));.

function add_fields_for_membresias(event) {
var usuario_id = $('#cbx_miembro').val();

var usuario_nombre = $('#cbx_miembro :selected').text();

var rol_value = $('#cbx_rol').val();

var posicionRolEnLaTabla = $('#tb_membresias tbody tr').length;

var columna_usuarioNombre = $('td');

columna_usuarioNombre.html = usuario_nombre;

var columna_rol = $('td');

columna_rol.html("<input id='equipo_membresias_attributes_" + posicionRolEnLaTabla + "_usuario_id' name='equipo[membresias_attributes][" + posicionRolEnLaTabla + "][usuario_id]' readonly='readonly' type='hidden' value='" + usuario_id + "\'>" +
"<input id='equipo_membresias_attributes_" + posicionRolEnLaTabla + "_supervisor' name='equipo[membresias_attributes][" + posicionRolEnLaTabla + "][administrador]' readonly='readonly' type='hidden' value='" + rol_value + "\'>" +
"<input id='equipo_membresias_attributes_" + posicionRolEnLaTabla + "_id' name='equipo[membresias_attributes][" + posicionRolEnLaTabla + "][id]' readonly='readonly' type='hidden'>" +
"<input id='equipo_membresias_attributes_" + posicionRolEnLaTabla + "__destroy' name='equipo[membresias_attributes][" + posicionRolEnLaTabla + "][_destroy]' type='hidden' value='false'>");

var columna_opciones = $('td');

columna_opciones.html("<input class=\"btn btn-mini\" onclick=\"remove_fields(this);\" type=\"button\" value=\"Quitar\">");

var nueva fila = $('tr');

nueva_fila.append(columna_usuarioNombre);
nueva_fila.append(columna_rol);
nueva_fila.append(columna_opciones);

$('#tb_membresias tbody').append(nueva_fila);
}

Somebody can help me?

I tryed also with:

"<input class=\"btn btn-mini\" onclick=\"remove_fields(this);\" type=\"button\" value=\"Quitar\">"

Answer

The Alpha picture The Alpha · Sep 14, 2013

You should use

$('tr');

to create a tr element, instead of

$(document.createElement('tr'));

because, you are using jQuery and jQuery will take care of that. To create any element using jQuery you just supply the name of that element/tag, for example, to create a td you can use

var td = $('td');

for a div, just use

var div = $('div');

That's it.

Update: In your code you have

var nueva fila = $(document.createElement('tr'));

here, nueva fila is not a valid variable name, it should be a single word, without any spaces, like

var nuevafila = $('tr');

or you can use

var nueva_fila = $('tr');

Check Variables on MDN.