• 締切済み

getElementsByTagNameの使い方?

http://archiva.jp/web/javascript/tab-menu.html 上記サイトの「タグで切り替えプログラム」を勉強しました。 pages[2]には、ジャバスクリプトの起動部分プログラムによって、「33333 33333 33333」が代入されていると思います。 <script>document.write(pages[2]);</script> 上記をHTMLに記入して確認しようと思いましたが、画面には表示出来ませんでした。 http://but.mods.jp/mtos/t/k/ 上記がテストした私のサイトです。 配列の要素を画面に表示するには、document.write(pages[2])、左記ではダメですか? pages[]の配列に「11111 11111 11111」~「55555 55555 55555」の5つの要素を代入するプログラムになっています。 「id="page1"」~「id="page5"」の要素に全て、class属性の「pepepe」を付けて、 tab.setup = {pages:document.getElementsByTagName('pepepe')}の様に、getElementsByTagNameによって、配列を代入しようとしました。 しかし、出来ませんでした。 どこにミスが有るのでしょうか?

みんなの回答

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

pagesは各関数のローカル変数でその関数内でだけ有効です 外から同等のものを参照するにはtab.setup.pagesとしないといけません

prime2011
質問者

お礼

回答ありがとうございます。 ローカル変数である事を忘れていました。 このレベルの問題を解決する力が私にまだ無いので、 一旦、質問を締め切りたいと思います。 ありがとうございました。

関連するQ&A

  • 配列要素をHTMLに書く方法?

    <html><body> <h6>11111 11111 11111</h6> <h6>22222 22222 22222</h6> <h6>33333 33333 33333</h6> <script type="text/javascript" language="javascript"> <!-- var item = document.getElementsByTagName('h6'); document.open(); document.write("文字列のテスト"); document.write(item); document.close(); // --> </script> </body></html> ●上記のプログラムをプラウザで見ると、以下の様に表現されました。 11111 11111 11111 22222 22222 22222 33333 33333 33333 文字列のテスト[object HTMLCollection] 私の期待では、[object HTMLCollection]と表現されるのではなく、 「11111 11111 11111,22222 22222 22222,33333 33333 33333」と表現して欲しかったです。 配列要素をHTMLに書くには、どうすれば良いのでしょうか?

  • JavaScript 変数をメソッドに代入する方法

    <SCRIPT LANGAGE="JavaScript"> var prop=new Array("title","lastModified","bgColor","fgColor","alinkColor","linkColor","vlinkColor"); for(i=0; i<7; i++){ document.write(document.prop[i],"<BR>"); } </SCRIPT> お世話になります。 上記ソースが動きません。 オブジェクトのメソッドに配列を代入することはできるのでしょうか?

  • 折り返しをしないで、後の表現をしない方法?

    http://but.mods.jp/mtos/ 上記のブログで、左右2列にタイトルリストを並べました。 タイトル名が長い場合には、自動で折り返されて2行の表現になります。 しかし、スペースが足りない時は、折り返さずに、そこで表現を打ち切りたいです。 何か良い方法が有れば教えて下さい。

    • 締切済み
    • CSS
  • 変数の挿入の仕方を教えてください。

    会社のホームページに下記のようにJavaScriptを書いて、ある機能を表示させたいと思っているのですが、変数を挿入することができなくて困っています。 JavaScriptなどプログラミングは初めてで、自分でもいろいろ調べたのですがわかりませんでした。どなたか教えていただけないでしょうか。 <div> <script type="text/javascript"> JAVASCRIPT.display.page(document, {page_id : "19" }); </script> </div> 「"19"」と入っているところに「pID」という変数を設定して、いろんな数字が入るようにしたいのですが、どのように記述すればいいのかわかりません。 ※上記のままWebページを表示することには成功しています。 よろしくお願いいたします。

  • ドキュメントからURLを抽出したい

    指定したURLのドキュメントを変数に代入したんですが、 その変数に代入したドキュメントの中からURLのみを 抽出して、配列に代入することができません。 できれば、その配列に入っているURLで、重複するものは 1つにまとめるようにしたいです。 どなたか、上記のことを実現できる方法をご存知の方が いたらどうか教えて下さい。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • htaccessで指定したURLが含まれる場合

    htaccessの設定でリダイレクト処理をしたいと思っています。 したい内容は 「指定したURLが含まれる場合、リダイレクト」 です。 現在、phpで下記の通り引数を使用してサイトを表示しています。 http://www.sample.jp/test.php?id=1&page=1 http://www.sample.jp/test.php?id=1&page=2 http://www.sample.jp/test.php?id=1&page=3 http://www.sample.jp/test.php?id=2&page=1 http://www.sample.jp/test.php?id=2&page=2 http://www.sample.jp/test.php?id=2&page=3 上記、URLで 引数id=1のページにアクセスがあった場合、新ドメインの http://www.ex.jp/test_page/ へリダイレクトし、 引数id=2のページにアクセスがあった場合、新ドメインの http://www.ex.jp/sample_page/ にリダイレクトしたいと思っています。 現状は1つずつ RedirectPermanent /test.php?id=1&page=1 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=2 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=3 http://www.ex.jp/test_page/ としていますが、これをid=1のページを全て一括で http://www.ex.jp/test_page/ へリダイレクトする書き方はないのでしょうか。

  • 外部javascriptファイルの中にさらに外部javascriptファイルを入れたい

    javascript初心者です。 メニューの一部を外部ファイルによるツリーメニューにし、 さらにメニュー部分全体を外部ファイルにしようとしましたが、 メニュー部分全体を外部ファイルに移したら、 中のツリーメニューが機能しなくなってしまいました。 いろいろ試してみましたが、付け焼き刃の知識では皆目見当が付きません。 ご指摘いただけると嬉しいです。内容は下記の通りです。 メニュー全体の外部ファイル「menu.js」 document.write('<div id="menu">'); document.write('<h1>お役立ち情報<\/h1>'); document.write('<ul>'); document.write('<script src="javascript\/tree.js" type="text\/javascript"><\/script>'); document.write('<li><a href="javascript:tree("click1");" title="">HOME<\/a>'); document.write('<\/li>'); document.write('<div id="click1" style="display:none;">'); document.write(' <a href="未設定" title="作成中です" target="未定">第1ページ <\/a>'); document.write('<br>'); document.write(' <a href="未設定" title="教えられません" target="未定">第2ページ <\/a>'); document.write('<br>'); document.write('<\/div>'); document.write('<li><a href="javascript:tree("click2");" title="">お知らせ<\/a>'); document.write('<\/li>'); document.write('<div id="click2" style="display:none;">'); document.write(' <a href="未設定" title="作成中です" target="未定">第3ページ <\/a>'); document.write('<br>'); document.write(' <a href="未設定" title="教えられません" target="未定">第4ページ <\/a>'); document.write('<br>'); document.write('<\/div>'); document.write('<li><a href="#">DOWNLOAD<\/a>'); document.write('<\/li>'); document.write('<\/ul>'); document.write('<\/div>'); 中に入れてあるツリーメニューの外部ファイル「tree.js」 function tree(id) { if (document.getElementById(id).style.display == "block") document.getElementById(id).style.display="none"; else document.getElementById(id).style.display="block"; } .htmlの記述はこうなっています。 <script src="menu.js" type="text/javascript"></script>

  • ソースが難しくて初心者にわかるようにどなたか教えて

    https://okwave.jp/qa/q9365480.html の続き 初心者なのでソースだけではわかりません。 もう少し具体的に何をやっているか教えていただければ幸いです。 >>> functionaddCR( obj ){ id=obj.id; strArray[ id - 0 ]+='\r\n'; alert(obj.parentNode.outerHTML) obj.innerHTML+='<br>'; } 恐らくここで、テキストをクリックしたとき、クリックした場所で改行されるようですが、もう少し初心者にわかるように解説いただけませんか? これは何を再代入しているのですか? id=obj.id; 変数A += 変数Bは、変数A = 変数B+変数Aなので、 配列になにかしているのですか? strArray[ id - 0 ]+='\r\n'; なぜこれでクリックしたところにbrがつくのでしょうか? obj.innerHTML+='<br>'; https://codepen.io/anon/pen/xLWmZv ソース <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>test</title> </head> <body> <textarea>ここに文章を入力してください</textarea> <button>表示</button> <button>出力</button> <textarea id="out" readonly></textarea> <div id="disp"></div> <script type="text/javascript"> varstrArray; functionaddCR( obj ){ id=obj.id; strArray[ id - 0 ]+='\r\n'; alert(obj.parentNode.outerHTML) obj.innerHTML+='<br>'; } functiondisp(){ var str=document.getElementsByTagName('textarea')[0].value; strArray=str.split(''); vardiv=document.getElementById('disp'); div.innerHTML=''; var aProto=document.createElement('a'); for( var i =0, len=strArray.length; i<len; i++ ){ vara=aProto.cloneNode(1); a.onclick=function(){ addCR(this); } a.innerText=strArray[ i ]; a.id=i div.appendChild(a); } } functionoutput(){ var outText=document.getElementsByTagName('textarea')[1]; outText.value=strArray.join("") } document.getElementsByTagName('Button')[0].onclick=function(){ disp() } document.getElementsByTagName('Button')[1].onclick=function(){ output() } </script> </body> </html>

  • ページは表示されたけれど、エラーが出ます。

    過去の質問を調べたのですが、見つけられなかったので、質問させてください。 自社サイトのページを開くと、ステータスバーに 「ページが表示されましたが、エラーがあります。」と表示されました。 エラーの詳細は下記のとおりです。 ライン:18 文字:51 エラー:')'がありません コード:0 ソースに問題があるのかと思ったのですが、 下記がそのソースです。 <SCRIPT language="javascript" type="text/javascript" src="../js/common_lib.js"></SCRIPT> <SCRIPT type="text/javascript" src="../js/css_junction2.js"></SCRIPT> <SCRIPT language="JavaScript"> <!-- document.write("<img src='http://700700.jp/acc/acclog.cgi?"); document.write("referrer="+document.referrer+"&"); document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"' alt="">"); // --> </SCRIPT> どこをどう直せばよいのかよくわからないので、 もしお分かりの方がいらっしゃいましたら、 お教えいただけますでしょうか? よろしくお願いいたします。

  • 配列の大括弧と丸括弧はどう違う?

    var list = document.getElementsByTagName('div'); alert(list.item(0).id); ←div要素のid属性の値が表示される alert(list.item[0].id); ←FireFoxでは、has no property エラーが出る 配列のIndex指定としては、後者が妥当な気がするのですが、 なぜこの場合は丸括弧で期待される結果が出るのでしょうか? itemという関数を引数0で指定した結果のプロパティ"id"のように 見えるのですが...。