<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
为什么上面的方法不起作用,我应该怎么做?
<div id="test"></div>
<script>
$(document).ready(function() {
alert($('#test').id);
});
</script>
为什么上面的方法不起作用,我应该怎么做?
当前回答
由于id是一个属性,您可以使用attr方法获取它。
其他回答
$('selector').attr('id')将返回第一个匹配元素的id。参考
如果匹配的集合包含多个元素,则可以使用常规的.each迭代器返回包含每个id的数组:
var retval = []
$('selector').each(function(){
retval.push($(this).attr('id'))
})
return retval
或者,如果你想变得更强硬一点,你可以避免包装,使用.map快捷方式。
return $('.selector').map(function(index,dom){return dom.id})
以上答案很好,但随着jquery的发展。。因此,您还可以执行以下操作:
var myId = $("#test").prop("id");
这可以是元素id、类,也可以自动使用
------------------------
$(this).attr('id');
=========================
------------------------
$("a.remove[data-id='2']").attr('id');
=========================
------------------------
$("#abc1'").attr('id');
=========================
可能对找到此线程的其他人有用。只有当您已经使用jQuery时,下面的代码才有效。函数始终返回一个标识符。如果元素没有标识符,函数将生成标识符并将其附加到元素。
var generatedIdCounter = 0;
$.fn.id = function() {
var identifier = this.attr('id');
if(!identifier) {
generatedIdCounter++;
identifier = 'isGenerated_' + generatedIdCounter;
this.attr('id', identifier);
}
return identifier;
}
如何使用:
$('.classname').id();
$('#elementId').id();
id是html元素的属性。然而,当您编写$(“#something”)时,它返回一个jQuery对象,该对象包装匹配的DOM元素。要获取第一个匹配的DOM元素,请调用get(0)
$("#test").get(0)
在本机元素上,可以调用id或任何其他本机DOM属性或函数。
$("#test").get(0).id
这就是id在代码中不起作用的原因。
或者,按照其他答案的建议,使用jQuery的attr方法来获取第一个匹配元素的id属性。
$("#test").attr("id")