4

我是 jquery 的新手。如何使用 jquery 获取元素的名称、ID 或类名。我正在尝试作为;

<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);
}

但不起作用

4

3 回答 3

4

尝试这个:

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...。在回调中,我们得到它的属性。

于 2012-11-17T21:36:00.613 回答
4

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

尝试这个:

<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);
    });
});

示例小提琴

您选择的属性都可以通过 POJS 获得,您也可以转换this为 jQuery 对象来获取其他属性,例如:

var title = $(this).attr('title');
var myattribute = $(this).data('myattribute'); // using HTML5: <div data-myattribute="foo"></div>
于 2012-11-17T21:36:10.930 回答
1

您需要传递对要获取其名称属性的元素的引用。尝试这个:

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

现在您应该得到最后一个元素的名称,因为这是唯一有名称的元素。其他人会回来undefined

于 2012-11-17T21:36:34.780 回答