2010-11-22 8 views
6

Tengo un método jQuery al que quiero agregar el elemento $ (this).

Mi código es

$("#actions ul").append($(this)); 

Sin embargo, esto parece hacer nada. Usando la línea

.append($(this).html()) 

funciona, pero sólo se agarra al niño de $ (este) (un div) no todo el elemento (un li).

Probablemente estoy haciendo algo estúpido, ojalá alguien me lo señale.

+0

Bienvenido a Stack Overflow !! Necesitamos ver más código. ¿De dónde viene $ (esto)? un evento de clic, un mouse sobre? ¿Dónde? –

Respuesta

7

Sin saber exactamente lo que se refiere a this, la única razón que se me ocurre para $(this).html() a trabajar y no $(this) es que el primer método crea un nuevo elemento a partir del código HTML mientras que añadiendo $(this) se moverá el elemento.

ver si los de abajo solucione el problema:

$("#actions ul").append($(this).clone()); 
+0

Gracias sí fue la función .clone() que me faltaba –

0

No está claro a qué se refiere $(this), pero si es el elemento secundario del elemento que desea, entonces $(this).parent() debería obtener el elemento principal que está buscando.

+0

append() acepta cadena, elemento o objeto jQuery, por lo que .append ($ (this) .parent()) es suficiente. Además, agregar un objeto jQuery moverá el elemento, en lugar de clonarlo en el caso de $ (this) .parent(). Html(). –

+0

@ box9 - Gracias por la corrección, no me di cuenta de eso sobre append(). Eliminé esa parte de mi respuesta para mantenerla precisa. – mikel

0

Parece que this se establece en un selector que encuentra <div> en lugar de <li>. Puede cambiar el selector o, como sugiere miket2e, usar .parent() en su lugar. Nota: tampoco debería tener que usar .html() ya que the .append function puede tomar una cadena HTML o un objeto jQuery.

Si publica el valor de this, podríamos proporcionar una respuesta más concreta.

0

realidad que desea utilizar appendTo, esto va a agarrar el elemento completo.

$(this).appendTo("#actions ul"); 
Cuestiones relacionadas