JavaScriptでid(class)を取得後、その子要素がある要素を持ってたらある動きをさせる、というようにしたいのですが方法が思いつきません。
例えばswitch文で
JavaScript
1var a = document.getElementById('a'); //要素を取得 2if(a.hasChildNodes()){ 3switch (???) { //aの子要素を比べたい 4 case b: //bというidをもっていたらある動きをさせたい 5 kansuu(); 6break; 7 8
よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
Selectors API
JavaScript
1document.querySelectorAll('#a>.b').forEach(b => console.log(b));
XPath
:scope
はブラウザの実装が整っていないので、コンテキストノード指定が必要であれば、document.evaluate
をお勧めします。
Re: shim1 さん
投稿2018/04/18 13:39
総合スコア18156
0
例えばこんな
HTML
1<div id="a"> 2 <div> 3 <div></div> 4 </div> 5</div>
JavaScript
1{ 2 const a = document.getElementById("a"); 3 if(a.querySelector(":scope>div>div")){//#bとかを指定できる 4 kansuu(); 5 } 6 function kansuu(){ 7 console.log("called"); 8 } 9}
投稿2018/04/18 13:12
編集2018/04/18 13:27総合スコア4756
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
例えばこんな感じ
javascript
1<script> 2HTMLElement.prototype.has=function(selector){ 3 return this.querySelectorAll(selector).length>0?this:null; 4} 5window.addEventListener('DOMContentLoaded', function(e){ 6 var node=document.querySelector('#hoge').has('#fuga'); 7 if(node) console.log("#fuga ok"); 8 var node=document.querySelector('#hoge').has('#piyo'); 9 if(node) console.log("#piyo ok"); 10 var node=document.querySelector('#hoge').has('.piyo'); 11 if(node) console.log(".piyo ok"); 12 var node=document.querySelector('#hoge').has('span'); 13 if(node) console.log("span ok"); 14}); 15</script> 16<div id="hoge"> 17<span id="fuga">fuga</span> 18<span class="piyo">piyo</span> 19<span class="piyo">piyo</span> 20<span class="piyo">piyo</span> 21</div>
投稿2018/04/19 05:03
総合スコア114505
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/19 12:14 編集
2018/04/19 12:52
0
要素の子要素を全て取得する
lang=javascript
1const elements = document.getElementById('list').children; 2for (var i = 0; i < elements.length; i++) { 3 console.log(elements[i]); 4};
投稿2018/04/18 14:42
編集2018/04/18 14:54退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/18 13:45
2018/04/18 13:58