質問させてください。
例えば下記ような html があったとしまして、<ul>
要素を子に持つ全ての<li>
要素を取得したいと思っております。
html
1<ul> 2 <li><a href="">メニュー1</a> 3 <ul> 4 <li><a href="">メニュー1-1</a> 5 <ul> 6 <li><a href="">メニュー1-1-1</a></li> 7 <li><a href="">メニュー1-1-2</a></li> 8 </ul> 9 </li> 10 <li><a href="">メニュー1-2</a></li> 11 </ul> 12 </li> 13 <li><a href="">メニュー2</a></li> 14 <li><a href="">メニュー3</a> 15 <ul> 16 <li><a href="">メニュー3-1</a></li> 17 <li><a href="">メニュー3-2</a></li> 18 </ul> 19 </li> 20</ul>
jQuery では .has()メソッドがあるのですが、JavaScript では同じような機能が見つからず、下記のようにして何とか想定した要素を取得することができました。
javascript
1// <li> 直下の子要素の <ul> を取得 2const children = document.querySelectorAll('li > ul'); 3 4for (const child of children) { 5 // <ul> の親要素の <li> を取得 6 const parent = child.parentNode; 7 parent.style.backgroundColor = '#fcc'; 8}
ただこれだとなんとなく冗長で、.has()
メソッドのように1~2行ぐらいでもう少しシンプルに書けないかなと思っております。
どなたかもし詳しい方がいらっしゃいましたらご教授いただけると助かります。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/05 06:46