<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
属性,你可以在这里找到有关差异的更多细节。
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")