Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Установка фона для ближайших родителей (метод .closest()) (https://javascript.ru/forum/jquery/45936-ustanovka-fona-dlya-blizhajjshikh-roditelejj-metod-closest.html)

Boolean_Type 21.03.2014 16:41

Установка фона для ближайших родителей (метод .closest())
 
Здравствуйте всем!
Код:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title></title>
  <style>
  
  </style>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<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>
<script>
var listItemII = document.getElementById( "ii" );
$( "li.item-a" )
  .closest( "ul", listItemII )
  .css( "background-color", "red" );
  
$( "li.item-a" )
  .closest( "#one")
  .css( "background-color", "green" );
  
</script>
 
</body>
</html>

Поведение первого блока скрипта предсказуемо:
$( "li.item-a" )
  .closest( "ul", listItemII )
  .css( "background-color", "red" );

Вопрос вызывает вторая часть:
$( "li.item-a" )
  .closest( "#one")
  .css( "background-color", "green" );

Метод .closest( "#one") находит ближайший ul с id "one" и применяет к нему (в т.ч., естественно, к его детям) зелёный фон. Видно, что это контейнер всего представленного списка. Так почему же вследствие работы второй части кода весь список не окрашивается в зел. цвет? Ведь правило установления зел. фона идёт после правила установления красного.

danik.js 21.03.2014 16:52

Цитата:

Сообщение от Boolean_Type
(в т.ч., естественно, к его детям)

Ниче подобного. Свойство background не наследуется. Тебе кажется что наследуется, потому что по умолчанию элементы имеют прозрачный background, то есть под ним виден фон предков.

Собственно в этом то и причина твоего недоумения.

Boolean_Type 21.03.2014 17:09

Цитата:

Сообщение от danik.js (Сообщение 303587)
Свойство background не наследуется.

danik.js, спасибо большое!
Упустил вот это:
http://htmlbook.ru/samcss/nasledovanie


Часовой пояс GMT +3, время: 05:16.