• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:何が悪いのでしょうか。)

数字部分だけをアラートで出したいのですが、配列baguruが反応しません。何が悪いのでしょうか。

このQ&Aのポイント
  • 配列baguruが反応しないため、数字部分だけをアラートで表示することができません。
  • JavaScriptの配列baguruに問題があるため、数字部分のみをアラートで出力することができません。
  • ブラウザのアドレスバーを使用して数字部分をアラート表示しようとしていますが、配列baguruが機能していないため、期待した結果が得られません。

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.2

baguruの配列の中身が数値として記録されているためにおこります なので javascript:alert((baguru[1]+'').match(/test(\d+)$/)[1]); のようにして+''を付加し文字列として参照すればOK!

xindex
質問者

お礼

さすがpipi様です。感動です。 数値として記録されていたなんて!(何故 気づきませんでした。ありがとうございました!

xindex
質問者

補足

では訂正版もこちらに。 <html> <head> <title>たいとる</title> <script> baguru = new Array(); window.onload=function(){ var tags=document.getElementsByTagName("*"); for(var i=0;i<tags.length;i++){ matti = tags[i].id.match(/^test[0-9]+$/) if(matti){ baguru.push(matti); } } } xx = new Array(),xx[0]="test123",xx.push('test30'),xx.push('test200','test1'),str=xx[1]; yy = new Array("test1", "test200", "test30"),stl=yy[1]; </script> </head> <body> <div id="test123">TEST123</div> <div id="test30">TEST30</div> <span id="test200">TEST200</span> <div id="test1">TEST1</div> <div id="hoka123">HOKA123</div> <hr> アドレスバーでTEST用。 <pre> javascript:alert(xx[1].match(/test(\d+)$/)[1]); javascript:alert(yy[1].match(/test(\d+)$/)[1]); javascript:alert(baguru[1]);//中身はある javascript:alert(baguru[1].match(/test(\d+)$/)[1]);//反応無し javascript:alert((baguru[1]+'').match(/test(\d+)$/)[1]);//これでできる! </pre> <pre> javascript:alert(xx); javascript:alert(yy); javascript:alert(baguru); </pre> </body> </html>

その他の回答 (1)

noname#84373
noname#84373
回答No.1

どの時点でalertしたいのか判りませんが、 onloadする前に、baguruを参照しているのでは?

xindex
質問者

お礼

回答ありがとうございます。 質問のソースは変更ミスがありましたので こちらの訂正版http://okwave.jp/qa4463809.html のソースをそのまま貼り付けて アドレスバーでTEST用。 のjs、 javascript:alert(baguru[1]);とするとbaguru[1]の中身は表示される javascript:alert(baguru);も表示される javascript:alert(baguru[1].match(/disp(\d+)$/)[1]);だとなぜかうまくいかない。 onload後の話です。

関連するQ&A