2011-07-25 21 views
9

De seguro esta pregunta es muy fácil, pero no puedo resolver esto.JQuery - use elemento con DOMNodeInserted

Estoy usando evento DOMNodeInserted para detectar cuando se inserta un nuevo elemento.

No sé cómo usar el elemento actual, por ejemplo, para obtener su identificación principal.

Ahora tienen la función como esta:

document.addEventListener("DOMNodeInserted", function(event){ 
    var element = event.target; 

    if (element.tagName == 'DIV') { 
    if (element.id == 'ndiv_3-1VTSTHR') { 
    alert($('#ndiv_3-1VTSTHR').parent().get(0).tagName); 
    } 
    } 
}); 

Esto funciona, pero me va a dar al padre a ndiv_3-1VTSTHR elemento. Quiero conocer el elemento principal de cualquier elemento, utilizando JQuery.

he intentado con

alert($(this).parent().get(0).tagName); 

pero sin suerte.

+0

¿Qué tal eliminar el 'si' para filtrar una identificación específica? Y luego usa '$ (elemento)'. – pimvdb

+0

@pimvdb: No, intenté con la alerta ($ (elemento) .tagName); y me está dando indefinido. – CristiC

Respuesta

10

Probablemente necesite inicializar un objeto jQuery alrededor de element.target. Pruebe:

document.addEventListener("DOMNodeInserted", function(event) { 
    alert($(event.target).parent()[0].tagName); 
}); 
+0

Cualquiera 'element' o' event.target' Creo :) – pimvdb

+0

Gracias, esto funciona. Pero si hago var el = $ (event.target) .parent() [0]; ¿Puedo usarlo más con alerta ($ (el) .tagName)? – CristiC

+0

@Parkyprg, 'tagName' es una propiedad expuesta por elementos DOM, no por objetos jQuery. Tendría que escribir 'el.tagName' o' $ (el) [0] .tagName'. Podría ser mejor almacenar el objeto jQuery en sí mismo en 'el':' var el = $ (event.target) .parent(); '. Desde allí puede hacer 'el [0] .tagName' para obtener el nombre de la etiqueta del elemento. –

Cuestiones relacionadas