HTML文档中有3个标记a
。如下:
<nav id="navigation">
<a href="#" tabindex="1" class="active_nav">nav1</a>
<a href="#" tabindex="2">nav2</a>
<a href="#"tabindex="3">nav3</a>
</nav>
我使用jquery selector期望获得第一个<a>
这样的
alert($("#navigation >a")[0]);
但它显示了第一个<a>
!!!!!
如果我将<a>
替换为<div>
,则可行。
<nav id="navigation">
<div >nav1</div>
<div >nav2</div>
<div >nav3</div>
</nav>
警报时($(“#navigation&gt; div”)[0]);它显示了第一个DOM对象。 我觉得很奇怪。救救我!
答案 0 :(得分:1)
这是因为toString
的{{1}}只返回HTMLAnchorElement
属性。
href
$("#navigation > a")[0]; // HTMLAnchorElement
$("#navigation >a")[0].href; // "http://example.com/#"
$("#navigation >a")[0].toString(); // "http://example.com/#"
只接受一个字符串作为参数,因此会在您的元素上自动调用alert
,最终会看到toString
属性。
您应该使用href
进行调试,而不是console.log
。它的用处要高很多倍。
答案 1 :(得分:0)
试试这些。
alert($("#navigation > a").first().text());
或
alert($("#navigation > a").first().html());
答案 2 :(得分:0)
方括号意味着不同的东西,它访问匹配集中第一个对象的HTMLElement
。你要找的是.eq
(特别是.eq(0)
),就像@Paulpro所说,alert
强制toString
。