协慌网

登录 贡献 社区

如何使用 jQuery 获取元素的 ID?

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

为什么上述工作没有,我该怎么办呢?

答案

jQuery 方式:

$('#test').attr('id')

在你的例子中:

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

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

或者通过 DOM:

$('#test').get(0).id;

甚至 :

$('#test')[0].id;

使用$('#test').get(0)原因. JQuery 中的$('#test').get(0)甚至$('#test')[0]$('#test')是一个 JQuery 选择器并返回一个数组()结果不是默认功能的单个元素

jquery 中 DOM 选择器的替代方法是

$('#test').prop('id')

这与.attr()$('#test').prop('foo')不同.attr() $('#test').prop('foo')抓取指定的 DOM foo属性,而$('#test').attr('foo')抓取指定的 HTML foo属性,你可以在这里找到有关差异的更多细节。

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

id是 html Element的属性。但是,当你编写$("#something") ,它会返回一个包装匹配 DOM 元素的 jQuery 对象。要返回第一个匹配的 DOM 元素,请调用get(0)

$("#test").get(0)

在此本机元素上,您可以调用 id 或任何其他本机 DOM 属性或函数。

$("#test").get(0).id

这就是id在你的代码中不起作用的原因。

或者,使用 jQuery 的attr方法,因为其他答案建议获取第一个匹配元素的id属性。

$("#test").attr("id")