2

我正在查看 jquery api 网站上的这段代码,我不明白它是如何工作的

我只是不明白这部分是如何工作的 [0].nodeName,0 是做什么的?

        $( "<b></b>" ).html( $( ":root" )[ 0 ].nodeName ).appendTo( "#log" );

完整代码请到这里 http://api.jquery.com/root-selector/

4

3 回答 3

1

[0]是与jQuery对象(集合)一起使用的索引器,它DOM在零索引处返回 javascript 对象,您可以访问nodeName哪个是 DOM 对象的属性而不是jQuery 对象。如果选择器返回多个元素,您可以使用索引来访问特定元素。请记住,它是基于零的索引,因此第一个元素为零。

$(":root")[0].nodeName //For first element
$(":root")[1].nodeName //For second element

您也可以使用get函数而不是 indexer[]

$(":root").get(0).nodeName //对于第一个元素 $(":root").get(0).nodeName //对于第二个元素

于 2013-09-26T07:09:05.327 回答
0

eg 返回的 jQuery 对象jQuery( ':root' )总是返回一组元素,即使只有一个元素。您可以通过索引访问每个找到的 DOM 元素。

或者用 jQuery 文档的话来说:

jQuery 对象本身的行为很像一个数组。它有一个长度属性,对象中的元素可以通过它们的数字索引 [0] 到 [length-1] 访问。请注意,jQuery 对象实际上并不是 Javascript Array 对象,因此它没有真正的 Array 对象的所有方法,例如 join()。

http://api.jquery.com/Types/#jQuery

要确定是否至少找到一个元素,您可以使用

if( jQuery( ':root' ).length > 0 ) { … }

MDN 对 DOM 节点属性和方法有一个很好的概述:https ://developer.mozilla.org/en-US/docs/Web/API/Node

于 2013-09-26T07:12:36.130 回答
0
  1. $(":root")用于选择代码中最顶层的元素是 HTML
  2. $(":root")[0]用于从所有元素中选择第一个元素,这意味着可以有多个元素具有相同的标签名称。
  3. nodeName用于获取该标签的名称。
于 2013-09-26T07:11:54.587 回答