jQueryで子要素を取得する方法:children(), find()を徹底解説
jQuery で第二子要素を取得する方法
children() メソッド
children()
メソッドは、直近の子要素のみを取得します。引数にセレクタを指定することで、特定の子要素のみを抽出することも可能です。
// 親要素の ID が "parent" で、2 番目の子要素を取得
const secondChild = $("#parent").children().eq(1);
find() メソッド
find()
メソッドは、子孫要素すべてを対象に検索を行います。children()
メソッドと異なり、何世代目の子要素でも取得できます。引数にセレクタを指定することで、条件に合致する要素を抽出できます。
// 親要素の ID が "parent" で、2 番目の要素を取得
const secondChild = $("#parent").find(":nth-child(2)");
補足
- 上記の例では、ID を使ったセレクタを使用していますが、クラス名や属性セレクタなど、他のセレクタも同様に使用できます。
- 複数の要素を取得したい場合は、
each()
メソッドと組み合わせて処理することができます。
上記以外にも、状況に応じて様々な方法で第二子要素を取得することができます。ご自身の目的に合った方法を選択してください。
jQuery で第二子要素を取得するサンプルコード
children() メソッドを使ったサンプルコード
<!DOCTYPE html>
<html>
<head>
<title>jQuery で第二子要素を取得</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<ul id="parent">
<li>1 番目の子要素</li>
<li>2 番目の子要素</li>
<li>3 番目の子要素</li>
</ul>
<script>
$(document).ready(function() {
// 親要素の ID が "parent" で、2 番目の子要素を取得
const secondChild = $("#parent").children().eq(1);
// 取得した要素の背景色を青色に変更
secondChild.css("background-color", "blue");
});
</script>
</body>
</html>
解説
<ul>
要素にid="parent"
という ID を設定します。$(document).ready(function(){})
内で、以下の処理を実行します。$("#parent").children().eq(1);
で、ID が "parent" の要素の子要素のうち、2 番目の要素を取得します。secondChild.css("background-color", "blue");
で、取得した要素の背景色を青色に変更します。
find() メソッドを使ったサンプルコード
<!DOCTYPE html>
<html>
<head>
<title>jQuery で第二子要素を取得</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<ul id="parent">
<li>1 番目の子要素</li>
<li>2 番目の子要素</li>
<li>3 番目の子要素</li>
</ul>
<script>
$(document).ready(function() {
// 親要素の ID が "parent" で、2 番目の要素を取得
const secondChild = $("#parent").find(":nth-child(2)");
// 取得した要素の背景色を青色に変更
secondChild.css("background-color", "blue");
});
</script>
</body>
</html>
- 上記の
children()
メソッドを使ったサンプルコードと HTML は同じです。
- 上記の例では、li 要素を第二子要素として取得していますが、他の要素でも同様に取得できます。
- セレクタを工夫することで、より複雑な条件で第二子要素を取得することも可能です。
jQuery で第二子要素を取得するその他の方法
eq()
メソッドは、jQuery オブジェクト内の特定のインデックスの要素を取得します。
// 親要素の ID が "parent" で、2 番目の子要素を取得
const secondChild = $("#parent").children().eq(1);
filter()
メソッドは、jQuery オブジェクト内の要素を条件に絞り込みます。
// 親要素の ID が "parent" で、2 番目の子要素を取得
const secondChild = $("#parent").children().filter(function(index) {
return index === 1;
});
first() と last() メソッド
first()
メソッドは、jQuery オブジェクト内の最初の要素を取得します。last()
メソッドは 最後の要素を取得します。
// 親要素の ID が "parent" で、2 番目の子要素を取得
const secondChild = $("#parent").children().first().next();
スライス操作
jQuery オブジェクトは配列として扱えるため、スライス操作を使って第二子要素を取得することもできます。
// 親要素の ID が "parent" で、2 番目の子要素を取得
const secondChild = $("#parent").children().slice(1, 2);
注意点
上記の方法を使用する場合は、以下の点に注意する必要があります。
eq()
メソッド、filter()
メソッド、スライス操作は、直下の子要素のみを対象とします。first().next()
のような方法を使用する場合は、要素の順番が変更される可能性があります。
jQuery で第二子要素を取得する方法には、様々な選択肢があります。状況に応じて、最適な方法を選択してください。
jquery jquery-selectors