2011-07-27 24 views
8

im tìm kiếm các yếu tố đó cung cấp tên của một phụ huynh. Điều này:jquery làm thế nào để có được Tên của phụ huynh

  $('.Item').click(function(){ 
       var a = $(this).parent(); 
       alert(a[0].tagName); 
      }); 

chỉ nói "DIV", nhưng tôi cần tên thật của phần tử. Cảm ơn

+0

Đó là vì nó trả về một đối tượng. Nếu bạn muốn một lớp hoặc một ID xác định. – Mitch

+1

các phần tử div không có thuộc tính tên, nhưng hầu hết các trình duyệt sẽ cho phép bạn thêm một. Bởi vì nó là một thuộc tính không chuẩn, bạn sẽ cần sử dụng * attr * của jQuery hoặc phương thức DOM * getAttribute * để lấy nó: 'this.parentNode.getAttribute ('name')'. – RobG

Trả lời

11

Hãy thử như sau (Alerts tên thẻ, và sau đó là Real Name):

tôi đã sử dụng $(a[0]).attr('name');

ví dụ

$('.Item').click(function() { 
     var a = $(this).parent(); 
     alert(a[0].nodeName.toLowerCase()); //Tag Name 

     alert($(a[0]).attr('name')); //Attribute (real) name 
     //OR 
     alert(a.attr('name')); //Attribute (real) name 
    }); 
+3

Sử dụng a.attr ('name') thay vì $ (a [0]) attr ('name') – Darm

+0

Cảm ơn Darm Ret, tôi đã thêm nó vào câu trả lời của tôi. –

0

nếu bạn muốn nhận được các thuộc tính "name" bạn nên sử dụng .attr() $('.Item').click(function(){ var a = $(this).parent(); alert(a[0].attr("name")); });

1

Hãy thử:

var a = $(this).parent().attr('name'); 
+0

Tôi nghĩ anh ấy có nghĩa là div, input, span, nav ... chứ không phải name = "this" – Sparkup

+0

Tôi đã không bỏ phiếu. – Sparkup

1

Sử dụng:

$('.Item').click(function(){ 
      var a = $(this).parent(); 
      alert(a.attr('name')); 
     }); 
1

Bạn chỉ có thể sử dụng đồng bằng Javascript cho điều này - trong trường hợp này nó thậm chí còn đơn giản hơn (tôi nghĩ):

$('.Item').click(function() { 
    var parent = this.parentElement; 
    var tagName = parent.tagName; // tag name, like 'div', 'a', etc... 
    var name = parent.name // value of the 'name' attribute 
}); 

nguồn của tôi: JavaScript DOM. Hãy nhìn vào nó, và giúp đỡ chính mình.

Chỉnh sửa: mã được bao bọc bên trong trình xử lý sự kiện nhấp chuột.

1

var a = $ (this) .parent(); cảnh báo (a [0] .nodeName.toLowerCase()); // Tên thẻ

alert($(a[0]).attr('name')); //Attribute (real) name 
    //OR 
    alert(a.attr('name')); //Attribute (real) name getting issue on this code 
Các vấn đề liên quan