jQuery关键知识(二)

1. jQuery 创建的对象都是新对象
alert( $( "#logo" ) === $( "#logo" ) ); // alerts "false"
alert( $( "#logo" ).get(0) === $( "#logo" ).get(0) ); // alerts "true"

尽管两个 jQuery 对象包含相同的 DOM 元素,但是俩对象并不相等,要判断俩对象是否包含相同 DOM 元素,可以通过 get 方法获取 jQuery 对象包含的 DOM 元素来比较。

2. jQuery 对象并不能自动更新
var allParagraphs = $( "p" );

allParagraphs 并不会随着页面上 p 元素的增加或减少而改变,除非重新执行

allParagraphs = $( "p" );
3. 遍历 DOM 元素

参考文本

a. 遍历父节点
主要有 .parent(), .parents(), .parentsUntil(), 和 .closest() 方法

// Selecting an element's direct parent:
 
// returns [ div.child ]
$( "span.subchild" ).parent();
 
// Selecting all the parents of an element that match a given selector:
 
// returns [ div.parent ]
$( "span.subchild" ).parents( "div.parent" );
 
// returns [ div.child, div.parent, div.grandparent ]
$( "span.subchild" ).parents();
 
// Selecting all the parents of an element up to, but *not including* the selector:
 
// returns [ div.child, div.parent ]
$( "span.subchild" ).parentsUntil( "div.grandparent" );
 
// Selecting the closest parent, note that only one parent will be selected
// and that the initial element itself is included in the search:
 
// returns [ div.child ]
$( "span.subchild" ).closest( "div" );
 
// returns [ div.child ] as the selector is also included in the search:
$( "div.child" ).closest( "div" );

b. 遍历子节点
主要有 .children 和 .find 方法

// Selecting an element's direct children:
 
// returns [ div.parent, div.surrogateParent1, div.surrogateParent2 ]
$( "div.grandparent" ).children( "div" );
 
// Finding all elements within a selection that match the selector:
 
// returns [ div.child, div.parent, div.surrogateParent1, div.surrogateParent2 ]
$( "div.grandparent" ).find( "div" );

c. 遍历兄弟节点
主要方法有.prev(), .next(), .siblings(), .nextAll(), .nextUntil(), .prevAll() 和 .prevUntil()

// Selecting a next sibling of the selectors:
 
// returns [ div.surrogateParent1 ]
$( "div.parent" ).next();
 
// Selecting a prev sibling of the selectors:
 
// returns [] as No sibling exists before div.parent
$( "div.parent" ).prev();
 
// Selecting all the next siblings of the selector:
 
// returns [ div.surrogateParent1, div.surrogateParent2 ]
$( "div.parent" ).nextAll();
 
// returns [ div.surrogateParent1 ]
$( "div.parent" ).nextAll().first();
 
// returns [ div.surrogateParent2 ]
$( "div.parent" ).nextAll().last();
 
// Selecting all the previous siblings of the selector:
 
// returns [ div.surrogateParent1, div.parent ]
$( "div.surrogateParent2" ).prevAll();
 
// returns [ div.surrogateParent1 ]
$( "div.surrogateParent2" ).prevAll().first();
 
// returns [ div.parent ]
$( "div.surrogateParent2" ).prevAll().last();

// Selecting an element's siblings in both directions that matches the given selector:
 
// returns [ div.surrogateParent1, div.surrogateParent2 ]
$( "div.parent" ).siblings();
 
// returns [ div.parent, div.surrogateParent2 ]
$( "div.surrogateParent1" ).siblings();

你可能感兴趣的:(jQuery关键知识(二))