Añadir un elemento html con append y obtener ese elemento sin tener que buscarlo

publicado por: Anonymous

Por ejemplo si añado un select con .append() y luego quiero añadir options a ese select añadido, ¿Cómo lo puedo asignar a una variable a la vez que lo añado?

La única forma que he conseguido es buscarla después de añadirla con el método .find()

$(this).append('<select></select>');
var select = $(this).find('select');
select.append($('<option>', {
    value: 5,
    text: 'texto',
))

Esto creo que no es correcto o algo no he echo bien

var select = $(this).append('<select></select>');
select.append($('<option>', {
    value: 5,
    text: 'texto',
))

Me gustaría saber si existe alguna forma de hacerlo más elegante

solución

Lo que buscas hacer, tener en una variable el elemento que estás añadiendo sería justo lo contrario de lo que estás haciendo.

var this_ = $(this).append(elemento);

La variable this_ hace referencia al elemento jQuery $(this)

var select = $('<select></select>').appendTo($(this));

En este caso la variable select hace referencia al elemento jQuery creado. (Ya que estos métodos de jQuery devuelven el propio objeto).

_x000D_

_x000D_

var body = $('body');_x000D_
var select = $('<select></select>').appendTo(body);_x000D_
var optiona = $('<option value="aaa">aaa</option>').appendTo(select);_x000D_
var optionb = $('<option value="bbb">bbb</option>').appendTo(select);

_x000D_

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *