jQuery ±éÀú - closest() ·½·¨

ʵÀý

±¾ÀýÑÝʾÈçºÎͨ¹ý closest() Íê³ÉʼþίÍС£µ±±»×î½Ó½üµÄÁбíÔªËØ»òÆä×Óºó´úÔªËØ±»µã»÷ʱ£¬»áÇл»»ÆÉ«±³¾°£º

$( document ).bind("click", function( e ) {
    $( e.target ).closest("li").toggleClass("hilight");
  });

Ç××ÔÊÔÒ»ÊÔ

¶¨ÒåºÍÓ÷¨

closest() ·½·¨»ñµÃÆ¥ÅäÑ¡ÔñÆ÷µÄµÚÒ»¸ö׿ÏÈÔªËØ£¬´Óµ±Ç°ÔªËØ¿ªÊ¼ÑØ DOM Ê÷ÏòÉÏ¡£

Óï·¨

.closest(selector)
²ÎÊý ÃèÊö
selector ×Ö·û´®Öµ£¬°üº¬Æ¥ÅäÔªËØµÄÑ¡ÔñÆ÷±í´ïʽ¡£

Ïêϸ˵Ã÷

Èç¹û¸ø¶¨±íʾ DOM ÔªËØ¼¯ºÏµÄ jQuery ¶ÔÏó£¬.closest() ·½·¨ÔÊÐíÎÒÃǼìË÷ DOM Ê÷ÖеÄÕâÐ©ÔªËØÒÔ¼°ËüÃǵÄ׿ÏÈÔªËØ£¬²¢ÓÃÆ¥ÅäÔªËØ¹¹ÔìÐ嵀 jQuery ¶ÔÏó¡£.parents() ºÍ .closest() ·½·¨ÀàËÆ£¬ËüÃǶ¼ÑØ DOM Ê÷ÏòÉϱéÀú¡£Á½ÕßÖ®¼äµÄ²îÒ쾡¹Ü΢ÃȴºÜÖØÒª£º

.closest() .parents()
´Óµ±Ç°ÔªËØ¿ªÊ¼ ´Ó¸¸ÔªËØ¿ªÊ¼
ÑØ DOM Ê÷ÏòÉϱéÀú£¬Ö±µ½ÕÒµ½ÒÑÓ¦ÓÃÑ¡ÔñÆ÷µÄÒ»¸öÆ¥ÅäΪֹ¡£ ÑØ DOM Ê÷ÏòÉϱéÀú£¬Ö±µ½ÎĵµµÄ¸ùÔªËØÎªÖ¹£¬½«Ã¿¸ö׿ÏÈÔªËØÌí¼Óµ½Ò»¸öÁÙʱµÄ¼¯ºÏ£»Èç¹ûÓ¦ÓÃÁËÑ¡ÔñÆ÷£¬Ôò»á»ùÓÚ¸ÃÑ¡ÔñÆ÷¶ÔÕâ¸ö¼¯ºÏ½øÐÐɸѡ¡£
·µ»Ø°üº¬Áã¸ö»òÒ»¸öÔªËØµÄ jQuery ¶ÔÏó ·µ»Ø°üº¬Áã¸ö¡¢Ò»¸ö»ò¶à¸öÔªËØµÄ jQuery ¶ÔÏó

Çë¿´ÏÂÃæµÄ HTML Ƭ¶Î£º

<ul id="one" class="level-1">
  <li class="item-i">I</li>
  <li id="ii" class="item-ii">II
  <ul class="level-2">
    <li class="item-a">A</li>
    <li class="item-b">B
      <ul class="level-3">
        <li class="item-1">1</li>
        <li class="item-2">2</li>
        <li class="item-3">3</li>
      </ul>
    </li>
    <li class="item-c">C</li>
  </ul>
  </li>
  <li class="item-iii">III</li>
</ul>

Àý×Ó 1

¼ÙÉèÎÒÃÇÖ´ÐÐÒ»¸ö´ÓÏîÄ¿ A ¿ªÊ¼µÄ¶Ô <ul> ÔªËØµÄËÑË÷£º

$('li.item-a').closest('ul').css('background-color', 'red');

Ç××ÔÊÔÒ»ÊÔ

Õâ»á¸Ä±ä level-2 <ul> µÄÑÕÉ«£¬ÕâÊÇÒòΪµ±ÏòÉϱéÀú DOM Ê÷ʱ»áµÚÒ»¸öÓöµ½¸ÃÔªËØ¡£

Àý×Ó 2

¼ÙÉèÎÒÃÇËÑË÷µÄÊÇ <li> ÔªËØ£º

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

Ç××ÔÊÔÒ»ÊÔ

Õâ»á¸Ä±äÁбíÏîÄ¿ A µÄÑÕÉ«¡£ÔÚÏòÉϱéÀú DOM Ê÷֮ǰ£¬.closest() ·½·¨»á´Ó li ÔªËØ±¾Éí¿ªÊ¼ËÑË÷£¬Ö±µ½Ñ¡ÔñÆ÷Æ¥ÅäÏîÄ¿ A Ϊֹ¡£

Àý×Ó 3

ÎÒÃÇ¿ÉÒÔ´«µÝ DOM ÔªËØ×÷Ϊ context£¬ÔÚÆäÖÐËÑË÷×î½Ó½üµÄÔªËØ¡£

var listItemII = document.getElementById('ii');
$('li.item-a').closest('ul', listItemII).css('background-color', 'red');
$('li.item-a').closest('#one', listItemII).css('background-color', 'green');

Ç××ÔÊÔÒ»ÊÔ

ÒÔÉÏ´úÂë»á¸Ä±ä level-2 <ul> µÄÑÕÉ«£¬ÒòΪËü¼ÈÊÇÁбíÏî A µÄµÚÒ»¸ö <ul> ׿ÏÈ£¬Í¬Ê±Ò²ÊÇÁбíÏî II µÄºó´ú¡£Ëü²»»á¸Ä±ä level-1 <ul> µÄÑÕÉ«£¬ÒòΪËü²»ÊÇ list item II µÄºó´ú¡£

VUE