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

首頁 > 編程 > JavaScript > 正文

基于jquery的has()方法以及與find()方法以及filter()方法的區別詳解

2019-11-20 22:46:08
字體:
來源:轉載
供稿:網友

has(selector選擇器或DOM元素)   將匹配元素集合根據選擇器或DOM元素為條件,檢索該條件在每個元素的后代中是否存在,將符合條件的的元素構成新的結果集。

下面舉一個例子:

復制代碼 代碼如下:

<ul>
  <li>list item 1</li>
  <li>list item 2
    <ul>
      <li><div><span>a</span></div>list item 2-a</li>
      <li>list item 2-b</li>
    </ul>
  </li>
  <li>list item 3</li>
  <li>list item 4</li>
</ul>

復制代碼 代碼如下:

$('li').has('span').css('background-color', 'red');

得到的結果如下:

這個例子可以看出:在匹配li時,要檢查該li的后代元素中是否包含了span,如果包含,則該元素包含在結果中。如果不包含,那么就排除。

注意:has只起判斷作用。以has參數中的選擇器或DOM元素做為條件,檢測原結果集中的元素是否符合。去掉不符合的元素,將符合的元素構成一個新結果集。

這與find()方法不同,find()方法是獲得在當前結果集中每個元素的后代。參數(選擇器、jquery集合或DOM元素)做為過濾條件,滿足過濾條件的則保留,保留的是后代。而has()方法中,參數只做為條件,符合條件的,它的前元素加入新的結果集,而不是后代加入新的結果集。

$('li').find('span').css('background-color', 'red');

結果為:


filter()方法與has()方法中的參數,都是過濾條件。不同的是filter()方法,條件作用于自身;has()方法條件是作用于它的后代元素中。

以下面的例子為例:filter()方法中,條件作用于自身li,has()方法條件是作用于li的后代元素

復制代碼 代碼如下:

<ul>
  <li class="a">list item 1</li>
  <li>list item 2
    <ul>
      <li><div><span>a</span></div>list item 2-a</li>
      <li>list item 2-b</li>
    </ul>
  </li>
  <li>list item 3</li>
  <li>list item 4</li>
</ul>

復制代碼 代碼如下:

$('li').filter('.a').css('background-color', 'red');

結果為:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 济宁市| 自贡市| 四会市| 庄河市| 抚顺市| 顺昌县| 廊坊市| 瑞丽市| 历史| 凌海市| 西林县| 卓资县| 尤溪县| 信阳市| 丰顺县| 呼伦贝尔市| 荃湾区| 和田市| 甘德县| 阿拉善右旗| 深州市| 荆门市| 罗城| 陆川县| 华池县| 冀州市| 尚志市| 宁国市| 腾冲县| 瓦房店市| 万宁市| 玛曲县| 太谷县| 井陉县| 渝北区| 隆子县| 长泰县| 郧西县| 万州区| 郑州市| 那曲县|