Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 我想得到第一个DOM对象,但不是第一个对象的属性_Jquery_Dom_Jquery Selectors - Fatal编程技术网

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

Jquery 我想得到第一个DOM对象,但不是第一个对象的属性,jquery,dom,jquery-selectors,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> 但是它显示了第一个的href属性 如果我

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>
但是它显示了第一个
的href属性

如果我将
替换为
,它会工作

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

导航1
导航2
导航3
当警报($(“#导航>div”)[0]);它显示了第一个DOM对象。
我觉得很奇怪。救救我

这是因为
htmlanchoreElement
toString
只返回
href
属性

$("#navigation > a")[0];           // HTMLAnchorElement
$("#navigation >a")[0].href;       // "http://example.com/#"
$("#navigation >a")[0].toString(); // "http://example.com/#"
alert
仅将字符串作为参数,因此会自动对元素调用
toString
,您最终会看到
href
属性

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

您应该使用
console.log
进行调试,而不是
alert
。这是因为
htmlanchoreElement
toString
只返回
href
属性

$("#navigation > a")[0];           // HTMLAnchorElement
$("#navigation >a")[0].href;       // "http://example.com/#"
$("#navigation >a")[0].toString(); // "http://example.com/#"
alert
仅将字符串作为参数,因此会自动对元素调用
toString
,您最终会看到
href
属性

$("#navigation > a")[0];           // HTMLAnchorElement
$("#navigation >a")[0].href;       // "http://example.com/#"
$("#navigation >a")[0].toString(); // "http://example.com/#"
您应该使用
console.log
进行调试,而不是
alert
。它的用处要大很多倍。

试试这些

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

试试这些

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


方括号的意思不同,它访问匹配集中第一个对象的
HTMLElement
。你要找的是
.eq
(特别是
.eq(0)
),就像@Paulpro说的,
alert
强制
toString


参考:

方括号表示不同的内容,它访问匹配集中第一个对象的
HTMLElement
。你要找的是
.eq
(特别是
.eq(0)
),就像@Paulpro说的,
alert
强制
toString


参考:

@bohan,因为
.text
是一个jQuery函数,所以需要一个jQuery对象来使用它,而不是一个HtmlanchoreElement。以下两项都可以使用:
$($(“#导航>a”)[0])。text(“…”)这个更好:
$(“#导航>a”).eq(0).text(“…”)
@bohan因为
.text
是一个jQuery函数,所以需要一个jQuery对象来使用它,而不是一个HtmlanchoreElement。以下两项都可以使用:
$($(“#导航>a”)[0])。text(“…”)$(“#导航>a”).eq(0).text(“…”)