我正在查看 jquery api 网站上的这段代码,我不明白它是如何工作的
我只是不明白这部分是如何工作的 [0].nodeName,0 是做什么的?
$( "<b></b>" ).html( $( ":root" )[ 0 ].nodeName ).appendTo( "#log" );
完整代码请到这里 http://api.jquery.com/root-selector/
我正在查看 jquery api 网站上的这段代码,我不明白它是如何工作的
我只是不明白这部分是如何工作的 [0].nodeName,0 是做什么的?
$( "<b></b>" ).html( $( ":root" )[ 0 ].nodeName ).appendTo( "#log" );
完整代码请到这里 http://api.jquery.com/root-selector/
[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 //对于第二个元素
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
$(":root")
用于选择代码中最顶层的元素是 HTML$(":root")[0]
用于从所有元素中选择第一个元素,这意味着可以有多个元素具有相同的标签名称。nodeName
用于获取该标签的名称。