以下のように、Jqueryで各id名称を取得して配列に格納しようと思っております。
each()とattr()を組み合わせて取得することができたのですが、
console.log(idAry);の結果は、以下の通り不思議な形で出力されています。
[0:"hoge",1:"fuga"]
通常通りの出力を期待するのであれば、添字なしで以下の通りです。
["hoge","fuga"]
また、想定しない形での配列となってるせいかconsole.log(idAry[0]);の結果も
undefinedとアクセスすることができません。
jqueryオブジェクトの使用によるものなのか、検討しているのですが
onsole.log(typeof($(this).attr('id')));//stringなので
それぞで文字列をpushしているので期待通りの配列ができると思ったのですが
上記の期待した配列を得ることができませんでした。
原因と期待する配列を取得すると言う意味での解決方法についてアドバイスを願えますでしょうか。
html
1<div id="hoge" class="bar"></div> 2<div id="fuga" class="bar"></div>
javascript
1var idAry=[]; 2 3$(function(){ 4 $('.bar').each(function(){ 5 console.log(typeof($(this).attr('id')));//string 6 idAry.push($(this).attr('id')); 7 }) 8}) 9 10console.log(idAry);//[0:"hoge",1:"fuga"] 11console.log(idAry[0]);//undefined 12 13
追記コード(詳細は下記の通りです)
html
1<div id="hoge" class="bar"></div><!--処理する要素--> 2<div id="fuga" class="bar"></div><!--処理する要素--> 3<div class="bar"></div> 4 5
javascript
1<script> 2var idAry=[]; 3 4$(function(){ 5 $('.bar').each(function(){ 6 console.log(typeof($(this).attr('id')));//string 7 idAry.push($(this).attr('id')); 8 }) 9}) 10 11var idAryLen=idAry.length; 12 13for (var i = 0; i < idAryLen; i++) {//期待される配列は['hoge','fuga'] 14 idAddtext(idAry[i]); 15} 16 17function idAdtext(getId){//配列のすべての要素にidAdtextを適用する 18 $(function(){ 19 $('#'+getId).on('click',function(){ 20 $(this).text('something'); 21 }) 22 }) 23} 24 25</script>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/27 16:11
2019/10/27 21:32
2019/10/27 22:33