2013-04-13 12 views
9

Próbuję uzyskać nazwę znacznika elementów w jQuery.Nazwa znacznika jQuery elementu

Mam następujące HTML:

<div class="section" id="New_Revision"> 

    <h1>New Revision&nbsp<img alt="Lock_closed" class="edit" data-id="1" src="/assets/lock_closed.svg" /></h1> 

    <p>This is a test paragraph.</p> 

    <ol class="references"> 
     <li>test</li> 
    </ol> 
</div> 

i JavaScript:

$(".edit").click(function(){ 
    $(this).closest("div.section").children().each(function(){ 
     alert($(this).tagName + " - " + $(this).html()); 
    });  
}) 

próbowałam $(this).tagName, $(this).nodeName i $(this).attr("tag") jak wskazano w pytaniu: Can jQuery provide the tag name?

Ale ja” m zawsze otrzymuję w zamian undefined. html() wyświetla się poprawnie. Dlaczego nie mogę uzyskać nazwy znacznika dla każdego elementu?

+0

Możliwa duplikat [jQuery: Pobierz wybrany element name tag] (http://stackoverflow.com/questions/5347357/ jquery-get-selected-element-tag-name) – Druzion

Odpowiedz

34

Spróbuj

this.nodeName zamiast $(this).nodeName

this odnosi się do elementu DOM sobie i $(this) otacza element w obiekcie jQuery.

EDIT

Jeśli wymagają podejścia jQuery można użyć

$(this).prop("tagName") 
+0

to jest za pomocą javascript nie Jquery, jak stwierdzono w pytaniu. –

+2

jQuery jest JavaScript .. – Kaloyan

+0

@Floradu Tak samo napisałem tutaj.DOM oznacza model obiektu dokumentu. Dlaczego w dół? – ssilas777

4

Czy próbowałeś:

$(this).attr("id", "rnd" + this.nodeName.toLowerCase() + "_" + i.toString()); 

Jak stwierdzono w połączonej pytanie. Ponadto istnieje duża różnica pomiędzy $ (this) i to

próbował tego w konsoli przeglądarki i działa:

document.getElementsByTagName("a")[0].tagName // this uses javascript 

ten wykorzystuje jquery:

$('a').get(0).nodeName; // this works for jquery 

spróbować to:

$(".edit").click(function(){ 
    $(this).closest("div.section").children().each(function(){ 
     alert(this.tagName + " - " + $(this).html()); 
    });  
}) 
+0

Dzięki, ale mam problem z dostosowaniem tego do powyższego kodu '$ (this) .tagName'. –

+0

@RyanKing spróbuj kodu edytowanego z mojej odpowiedzi –

Powiązane problemy