2011-07-27 75 views
8

即时搜索提供父母名称的元素。此:jquery如何获得父母的姓名

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

只是说“DIV”,但我需要一个元素的真实名称。感谢

,如果你想要得到的属性 “名”,你应该使用.attr()
+0

这是因为它返回一个对象。如果你想要一个类或一个ID指定。 – Mitch

+1

div元素没有name属性,但大多数浏览器会让你添加一个。因为它是一个非标准属性,所以您需要使用jQuery的* attr *或DOM * getAttribute *方法来获取它:'this.parentNode.getAttribute('name')'。 – RobG

回答

11

请尝试以下(警报标记名称,然后将真实姓名):

我用$(a[0]).attr('name');

例如

$('.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

使用a.attr('name')而不是$(a [0])。attr('name') – Darm

+0

感谢Darm Ret,我已将它添加到我的答案中。 –

0

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

1

尝试:

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

我认为他的意思是div,input,span,nav ...而不是name =“this” – Sparkup

+0

我没有投票。 – Sparkup

1

用途:

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

你可以只使用普通的JavaScript此 - 在这种情况下,它更简单(我认为):

$('.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 
}); 

我来源:JavaScript DOM。看看它,并帮助你自己。

编辑:在点击事件处理程序中包装代码。

1

var a = $(this).parent(); alert(a [0] .nodeName.toLowerCase()); //标签名称

alert($(a[0]).attr('name')); //Attribute (real) name 
    //OR 
    alert(a.attr('name')); //Attribute (real) name getting issue on this code