2012-11-17 66 views
2

我是新来的jQuery。我如何获得名称,ID或类名称的元素与jquery.I'm尝试作为;我如何获得ID,类或名称attr元素与jquery

<div class="className" onclick="getname();"></div> 
<div id="idName" onclick="getName();"></div> 
<div name="attrName" onclick="getName()"></div> 

function getName(){ 
attrName = $(this).attr("name"); 
alert(attrName); 
} 

但不工作

回答

3

试试这个:

的JavaScript

$(function() { 
    $('div').click(function() { 
     var elem = $(this); 
     alert('Class: ' + elem.attr('class')); 
     alert('Id: ' + elem.attr('id')); 
     alert('Name: ' + elem.attr('name'));  
    });​​​​ 
}); 

HTML

<div class="className" onclick="getname();"></div> 
<div id="idName" onclick="getName();"></div> 
<div name="attrName" onclick="getName()"></div> 

CSS

​div { 
    width: 100px; 
    height: 100px; 
    border: 1px solid black; 
}​ 

的jsfiddle:http://jsfiddle.net/54ynV/

在上面的脚本我们连接到每一个div的单击事件$('div').click...在页面上。在回调中,我们得到它的属性。

3

首先使用jQuery,你应该附加click()处理程序,而不是使用陈旧的onclick属性。然后,您可以按照您在功能中使用的方式使用this关键字。

试试这个:你选择都可以通过POJS

<div class="className"></div> 
<div id="idName"></div> 
<div name="attrName"></div> 
$(function() { 
    $("div").click(function() { 
     var name = this.name; 
     var cls = this.className; 
     var id= this.id; 

     alert("Name: " + name + "/Class: " + cls + "/Id: " + id); 
    }); 
}); 

Example fiddle

的属性,你也可以转换到this一个jQuery对象来获取其他属性,例如:

var title = $(this).attr('title'); 
var myattribute = $(this).data('myattribute'); // using HTML5: <div data-myattribute="foo"></div> 
+0

为什么你重新声明'var'三次(超过必要的两倍),使用'name'两次而不是'this.className'? –

+0

@DavidThomas对不起,正在忙着做小提琴演示。错误修复。我也用'attr()'来演示,会做一个笔记。 –

+0

'this.name'未定义,至少在Chrome上; 'this.getAttribute('name')'给出期望值。 –

1

您需要通过ref选择要获取名称属性的元素。试试这个:

jQuery的

function getName(me) { 
    attrName = $(me).attr("name"); 
    alert(attrName); 
}​ 

HTML

<div class="className" onclick="getname(this);">a</div> 
<div id="idName" onclick="getName(this);">b</div> 
<div name="attrName" onclick="getName(this)">c</div>​ 

jsFiddle example

现在你应该得到的最后一个元素的名字,因为这是具有名称的唯一元素。其他人将返回undefined

+1

非常感谢你解决了问题 – regxcode