ImpressCMS
HOME  >  JSCRIPT  > DOMの指定方法 > 要素の中の要素の設定(子孫セレクタ)

10 - 3 : 要素の中の要素の設定(子孫セレクタ)

index.htmlのソースの中にこのように書いている部分があります。
<div id="danraku">
  <ul id="ichi">
    <li>箇条書き1</li>
    <li><a href="#">箇条書き2</a></li>
    <li>箇条書き3
        <ul id="ni">
            <li>こども1</li>
            <li><a href="#">こども2</a></li>
            <li>こども3</li>
        </ul>
    </li>
    <li>箇条書き4</li>
  </ul>
</div>
これをDOMとして説明調で記述すると
idがdanrakuのdiv の子には、idがichiのulがあります。
idがichiのulの子には、4つのliがあります。
1つ目のliの子はありません
2つ目のliの子はaがあります。
3つ目のliの子には、idがniのulがあり、さらにその子には3つのliがあります。このうち2つ目のliには子としてaがあります。
4つ目のliの子はありません

となります。
で、このHTMLには、2つのulがありますが、idがdanrakuのdiv絡みてみると、ichiのulは子であり、niのulは孫ということになります。

ここではulタグはこの2つしかありませんが、色んな場所でulタグが出現するのは十分考えられますね。

で、たくさんあるulの中で、「idがdanrakuのdivの中にあるulを定義する」というときには「子孫セレクタ」という考え方を使います。
子孫セレクタの表記はCSSの場合は、
要素 子要素 {
 設定
}

/* 今回の場合は */
#danraku ul {
 font-size: 20px;
}
のような表記を行い、jQueryでは、
$('要素 子要素').メソッド

/* 今回の場合は */
$('#danraku ul').css({
 fontSize: '20px'
});
という表記をします。
子孫セレクタと書いていますから、子どもだろうと孫だろうと(ひ孫だろうと)その領域に含まれている子要素はすべて含まれます。
さて、ここで、idがdanrakuの要素の下のulのcssの設定を「下線(ボーダー)を黒色で実線、5ピクセルにする」というjQueryを追加しましょう。
$('#danraku ul').css('border-bottom','5px solid black');

// もしくは
$('#danraku ul').css{(
  'border-bottom': '5px solid black')
});

// もしくは
$('#danraku ul').css{(
  borderBottom: '5px solid black')
});


子ulも、孫のulも、下のボーダーが黒く表示されましたか?
 
Publish : 2907 bytes - updated 2024-08-05 by 管理人

「要素の中の要素の設定(子孫セレクタ)」以下の情報