<div id="test"></div>
<script>
  $(document).ready(function() {
    alert($('#test').id);
  });  
</script>

为什么上面的方法不起作用,我应该怎么做?


当前回答

这是一个老问题,但截至2015年,这可能会奏效:

$('#test').id;

您还可以分配任务:

$('#test').id = "abc";

只要定义以下JQuery插件:

Object.defineProperty($.fn, 'id', {
    get: function () { return this.attr("id"); },
    set: function (newValue) { this.attr("id", newValue); }
});

有趣的是,如果元素是DOM元素,那么:

element.id === $(element).id; // Is true!

其他回答

$('#test')返回一个jQuery对象,因此不能简单地使用object.id获取其id

您需要使用$('#test').attr('id'),它返回元素所需的id

这也可以如下进行,

$('#test').get(0).id,等于document.getElementById('test').id

$('#test').attr('id')在您的示例中:

<div id="test"></div>

$(document).ready(function() {
    alert($('#test').attr('id'));
}); 

这可以是元素id、类,也可以自动使用

------------------------
$(this).attr('id');
=========================
------------------------
$("a.remove[data-id='2']").attr('id');
=========================
------------------------
$("#abc1'").attr('id');
=========================

以上答案很好,但随着jquery的发展。。因此,您还可以执行以下操作:

var myId = $("#test").prop("id");

如果您想获取一个元素的ID,比如说通过类选择器,当在该特定元素上触发事件(在本例中为单击事件)时,以下操作将完成此任务:

 $('.your-selector').click(function(){
       var id = $(this).attr('id');
 });