対象のHTMLにあるclass
とid
を拾って、目的のJSにあるvar ytData
に入れたいのですが、JSはどのように書けばよろしいでしょうか?
###対象のHTML
まずこのようなHTMLがあります。拾いたいのは、「.ytBox」から「xxx1」と「sample1」のペアです。
html
1<div id="contents"> 2 <div class="ytBox" id="xxx1"> 3 <div id="sample1" class="area"></div> 4 </div> 5 <div class="ytBox" id="xxx72"> 6 <div id="sample2" class="area"></div> 7 </div> 8 <div class="ytBox" id="xxx35"> 9 <div id="sample3" class="area"></div> 10 </div> 11</div> 12<!-- .ytBoxはいくつになるか不明 -->
###目的のJS
上のHTMLから拾った情報を、下記のコメントのように入れるのが目的です。
javascript
1var ytData = [ 2 { 3 id: 'ここに「xxx1」を入れたい', 4 area: 'ここに「sample1」を入れたい' 5 }, { 6 id: 'ここに「xxx72」を入れたい', 7 area: 'ここに「sample2」を入れたい' 8 }, { 9 id: 'ここに「xxx35」を入れたい', 10 area: 'ここに「sample3」を入れたい' 11 } 12 //以下、HTMLの .ytBox が増えるたびに同様に追加されていく 13];
###試したJS
イメージとしてはこのような感じですが、案の定と言いますか…、目的は達成できませんでした。
javascript
1var ytIds = []; 2var ytAreas = []; 3$('.ytBox').each(function() { 4 var ytId = $(this).attr('id'); 5 var ytArea = $(this).children('.area').attr('id'); 6 ytIds.push(ytId); 7 ytAreas.push(ytArea); 8}); 9 10var ytData = [ 11 { 12 id: ytIds[0], 13 area: ytAreas[0] 14 }, { 15 id: ytIds[1], 16 area: ytAreas[1] 17 }, { 18 id: ytIds[2], 19 area: ytAreas[2] 20 } 21];
###補足
補足させて頂きます。
上の質問の「id」や「area」は動画情報です。
現状の動画のコードはこうなっていて(https://jsfiddle.net/38r9tmzo/43/)、これですとJSに「ID」と「area」が書かれています。
今回はこの「id」と「area」をJSでなくHTMLに書き、JSでそれを取得したいと考えたために質問致しました。
なので構造は上の質問の通りなのですが、全体的な整合性についても鑑みる必要があるかもしれません。ということを補足させて頂きます。
回答1件
あなたの回答
tips
プレビュー