我看着jquery api网站上的这段代码,我不明白它是如何工作的
我只是不明白这个部分是如何工作的,0 .nodeName,0是做什么的?
$( "<b></b>" ).html( $( ":root" )[ 0 ].nodeName ).appendTo( "#log" );有关完整代码,请转至此处http://api.jquery.com/root-selector/
发布于 2013-09-26 15:09:05
[0]是与jQuery对象(集合)一起使用的索引器,它以零索引返回javascript DOM对象,您可以访问nodeName,它是DOM对象的属性,而不是jQuery对象。如果选择器返回多个元素,您可以使用索引来访问特定的元素。记住,它是从零开始的索引,所以零是第一个元素。
$(":root")[0].nodeName //For first element
$(":root")[1].nodeName //For second element您也可以使用get函数来代替索引器[]
$(":root").get(0).nodeName //第一个元素$(":root").get(0).nodeName //第二个元素
发布于 2013-09-26 15:11:55
$(":root")用于选择代码中最顶部的元素,HTML$(":root")[0]用于选择所有元素中的第一个元素,这意味着可以有多个元素具有相同的标签,name.nodeName用于获取该标签的名称。发布于 2013-09-26 15:12:36
例如jQuery( ':root' )返回的jQuery对象总是返回一组元素,即使只有一个元素也是如此。您可以通过索引访问每个找到的DOM元素。
或者用jQuery文档的话说:
jQuery对象本身的行为与数组非常相似;它有一个长度属性,对象中的元素可以通过其长度为-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
https://stackoverflow.com/questions/19021568
复制相似问题