2013-04-13 37 views
9

Tôi đang cố gắng lấy tên thẻ phần tử trong jQuery.Tên thẻ jQuery của phần tử

Tôi có html sau:

<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> 

Và javascript:

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

Tôi đã thử $(this).tagName, $(this).nodeName$(this).attr("tag") như đã nêu trong câu hỏi này: Can jQuery provide the tag name?

Nhưng tôi m luôn nhận được undefined đổi lại. Đầu ra html() chính xác. Tại sao tôi không thể lấy tên thẻ của từng phần tử?

+0

có thể trùng lặp của [jQuery: Nhận phần được chọn tên thẻ] (http://stackoverflow.com/questions/5347357/ jquery-get-selected-element-tag-name) – Druzion

Trả lời

34

Hãy thử

this.nodeName thay vì $(this).nodeName

this đề cập đến phần tử DOM chính nó và $(this) kết thúc tốt đẹp các phần tử trong một đối tượng jQuery.

EDIT

Nếu bạn đòi hỏi cách tiếp cận Jquery bạn có thể sử dụng

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

điều này đang sử dụng javascript không phải Jquery như đã nêu trong câu hỏi. –

+2

jQuery là JavaScript .. – Kaloyan

+0

@ Floradu Đó là những gì tôi cũng đã nêu ở đây.DOM có nghĩa là mô hình đối tượng tài liệu. Tại sao downvote? – ssilas777

4

Các bạn đã thử:

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

Như đã nêu trong câu hỏi liên quan. Cũng có một sự khác biệt lớn giữa $ (this)này

Cố gắng này trong trình duyệt giao diện điều khiển và nó hoạt động:

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

này sử dụng jquery:

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

thử này:

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

Cảm ơn, nhưng tôi gặp khó khăn khi xem cách điều chỉnh điều này thành mã '$ (this) .tagName' ở trên. –

+0

@RyanKing thử mã được chỉnh sửa từ câu trả lời của tôi –

Các vấn đề liên quan