1

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 选择器期望得到第一个<a>这样的

alert($("#navigation >a")[0]);

但它显示了第一个的 href 属性<a>!!!!!!

如果我用 替换 <a><div>它可以工作。

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

当警报($("#navigation >div")[0]); 它显示了第一个 DOM 对象。我觉得很奇怪。帮我!

4

3 回答 3

1

那是因为toStringofHTMLAnchorElement只是返回href属性。

$("#navigation > a")[0];           // HTMLAnchorElement
$("#navigation >a")[0].href;       // "http://example.com/#"
$("#navigation >a")[0].toString(); // "http://example.com/#"

alert仅将字符串作为参数,因此toString会在您的 Element 上自动调用,您最终会看到该href属性。

您应该console.log用于调试,而不是alert. 它有用很多倍。

于 2013-07-19T01:57:17.823 回答
0

试试这些。

alert($("#navigation > a").first().text());

或者

alert($("#navigation > a").first().html());
于 2013-07-19T01:58:05.970 回答
0

方括号意味着不同的东西,它访问HTMLElement匹配集中的第一个对象。您正在寻找的是.eq(特别是.eq(0)),就像@Paulpro 所说的,alertforces toString

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

于 2013-07-19T01:59:13.793 回答