国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery向上遍歷DOM樹之parents(),parent(),closest()之間的區(qū)別

2019-11-20 21:32:40
字體:
供稿:網(wǎng)友

在這個(gè)sprint中,因?yàn)橐獙懬岸薝I,所以用到了jQuery,但是jQuery在向上遍歷DOM樹的API中,有parents()、 parent()、closest()這幾個(gè),一直不太清楚它們具體的區(qū)別,所以狠下心好好讀了一下jQuery的API文檔,并把區(qū)別記在這里,以供參考。

 1.parents([selector])

本方法用于選擇給定jQuery對象中包含的DOM元素或者DOM元素集的祖先節(jié)點(diǎn),并將這些節(jié)點(diǎn)包裝成jQuery對象返回,返回的節(jié)點(diǎn)集是以從里到外的順序排序的。

同時(shí),本方法還接受一個(gè)字符串選擇器,用于從返回的節(jié)點(diǎn)集中篩選符合選擇器的子元素集。

 2.parent([selector])

本方法用于選擇給定jQuery對象中包含的DOM元素或者DOM元素集的父節(jié)點(diǎn)。它和parents()不同的是,它只向上搜索一層,而parents()會(huì)搜索整個(gè)DOM樹。

本方法也可以接受一個(gè)字符串選擇器,用于篩選返回的元素。

有人可能會(huì)問:一個(gè)DOM元素的父元素不是只有一個(gè)么,為什么還要一個(gè)selector選擇器進(jìn)行篩選呢?其實(shí)一個(gè)jQuery對象可能包含有很多個(gè)DOM元素,例如$('a').parent()就是選擇所有<a>標(biāo)簽的父元素,這樣返回的就是一個(gè)元素集,所以可以進(jìn)行篩選。

 3.closest(selector)

本方法用于向上遍歷jQuery對象中包含的DOM元素或者DOM元素集的祖先節(jié)點(diǎn),直到找到符合selector選擇器的節(jié)點(diǎn)為止。

它和parents()的區(qū)別:

closest()從自身開始向上遍歷,直到找到一個(gè)適合的節(jié)點(diǎn),返回的jQuery對象包含0個(gè)或者1個(gè)對象;

parents()從自身的父節(jié)點(diǎn)開始向上遍歷,返回所有祖先節(jié)點(diǎn),并根據(jù)選擇器對這些節(jié)點(diǎn)進(jìn)行篩選,最終返回的jQuery對象可能包含0、1或者多個(gè)對象。

 一個(gè)能說明區(qū)別的例子:

復(fù)制代碼 代碼如下:

<!DOCTYPE html>
<html>
<head>
    <title>a test document</title>
</head>
<body>
    <div>
        <p>
            <span>
                <b>My parents</b>
            </span>
        </p>
    </div>
</body>
</html>

在上述文檔中:

$('b').parents()將返回:由span、p、div、body、html等元素構(gòu)造的jQuery對象;

$('b').parent()將返回:由span構(gòu)造的jQuery對象;

$('b').closest('div')將返回:由div構(gòu)造的jQuery對象。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 六盘水市| 长寿区| 文昌市| 闻喜县| 鄱阳县| 荆州市| 绥化市| 调兵山市| 乌兰县| 仪陇县| 根河市| 台江县| 临沭县| 伽师县| 上饶市| 永兴县| 兴文县| 吉安市| 余庆县| 福建省| 珲春市| 类乌齐县| 宿松县| 靖州| 钟祥市| 乌兰浩特市| 夏邑县| 涿鹿县| 孟津县| 安平县| 舟曲县| 洪泽县| 莱阳市| 宿州市| 大渡口区| 会东县| 修水县| 抚松县| 西和县| 扎赉特旗| 宜都市|