我想获得第一个DOM对象,但不是第一个对象的属性

时间:2013-07-19 01:54:07

标签: jquery dom jquery-selectors

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> !!!!!

的href属性

如果我将<a>替换为<div>,则可行。

<nav id="navigation">
    <div >nav1</div>
    <div >nav2</div>
    <div >nav3</div>
</nav>

警报时($(“#navigation&gt; div”)[0]);它显示了第一个DOM对象。 我觉得很奇怪。救救我!

3 个答案:

答案 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

参考:http://api.jquery.com/eq/