状況
HTMLのdiv要素群をjQueryで取得し、Object.keys().forEach
でループ処理をしたいです。具体的には、取得したdiv要素の一部をslice
で抜き出したいです。
試したところ、ループの最後でCannot read property 'slice' of undefined
というエラーが出てしまいました。コンソールの出力結果を見ると、div要素群だけでなく、要素群のlengthに対しても処理をしているように見えます。
質問
div要素のみ対象としたループ処理を行う方法はありますでしょうか?
コード
html
1<!-- (※)ループ対象とするbody部のみ記載します --> 2<div id="years"> 3 <div>2015(平成27年)</div> 4 <div>2016(平成28年)</div> 5 <div>2017(平成29年)</div> 6 <div>2018(平成30年)</div> 7 <div>2019(令和元年)</div> 8</div>
javascript
1$(function(){ 2 // 子要素のオブジェクトを取得 3 var years = $('#years').children('div'); 4 5 // 子要素から西暦部分(上4桁)をsliceで抜き出してコンソールに表示する 6 Object.keys(years).forEach(function(key){ 7 console.log(key + ':' + years[key].innerHTML); 8 var year = years[key].innerHTML.slice(0, 4); 9 }); 10});
コンソールの出力結果
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/18 08:45