• ベストアンサー

name属性の背景に色をつける

<a href="××.html#test">リンク</a> と言うリンクがあるとします。これをクリックした時に、アンカーにname属性を指定していると、 <a name="#test">yahoo!の詳細</a> name属性があるところまでジャンプします。 この、<a href="××.html#test">リンク</a>をクリックした時に、name属性がついた「yahoo!」リンクの背景に色をつける又は印みたいなものをつける方法はないでしょうか? 前どこかでサンプルなのを見たんですが、検索しても引っかからなかったので質問させてもらいました。どうぞよろしくお願いします。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

現在<a name="test">test</a>の構文は非推奨となっています。 idで指定するのが正しいので覚えておいて損はないでしょう。 <a id="test">test</a>もしくは互換性を考慮して <a id="test" name="test">test</a> で、あとはこんな感じでやるとよいでしょう。 <script> window.onload=function(){ var h=location.hash.substring(1); if(h) changeColor(h); } function changeColor(id){ obj=document.getElementById(id) obj.style.backgroundColor="#ff0000"; } </script> <a href="#test" onClick="changeColor(this.href.substring(this.href.indexOf('#')+1))">to test</a> <a id="test">test</a>

その他の回答 (2)

  • oka5130
  • ベストアンサー率66% (35/53)
回答No.3

No.1です。 すみません、別ページを考慮していませんでした。 No.2の回答者の方が書いてくださったスクリプトを両方のページに書いておけば大丈夫です。 <a name="test">test</a>の構文が非推奨であることは私も知りませんでした。 是非、idを指定する方法をお使い下さい。

  • oka5130
  • ベストアンサー率66% (35/53)
回答No.1

onclick イベントハンドラと、JavaScript の getElementsByName 関数を 使ってやれば実現できます。 <script type="text/javascript"><!-- function highlight( name ) { // name属性から要素を取得 var el = document.getElementsByName( name )[0]; // スタイルを指定 el.style.backgroundColor = "#FF0000"; } //--></script> <a href="#test" onclick="highlight('test');">testへジャンプ</a> ... <a name="test">ここはtestです。</a> ただし、name属性の値は重複が許されるため、上のコードでは <a name="test"> の前に別の要素に test という名前を付けてしまって いるとそちらの要素の背景色が変わってしまいます。 なので、特定の要素のスタイルを変更したい場合などは、id要素を 指定する方が良いかと思います。 <script type="text/javascript"><!-- function highlight( id ) { // id属性から要素を取得 var el = document.getElementById( id ); // スタイルを指定 el.style.backgroundColor = "#FF0000"; } //--></script> <a href="#test" onclick="highlight('test');">testへジャンプ</a> ... <a name="test" id="test">ここはtestです。</a>

destroiyar
質問者

補足

サンプルプログラムありがとうございます。 これは、同一ページ内でしか適用できないのでしょうか?実際、サンプルプログラムを実行すると、同一ページ内でしかできませんでした。

関連するQ&A

  • NAME属性とID属性について

    <a name="TOP" href="index.html"> <a id="TOP" href="index.html"> は同じ意味でしょうか? NAME属性は使わないほうが良いですか?

    • ベストアンサー
    • HTML
  • Object要素におけるname属性の利用について

    Object要素におけるname属性の利用について ある『ホームページ入門サイト』に下記の記述がありました。 ------------------------------ <object data="test.pdf" name="test"></object> <a href="test2.pdf" target="test">テスト2ページ</a> a要素のターゲットで、testを指定しています。これは、objectのnameに対応しています。このため、リンクをクリックすると表示内容がtest2.pdfに切り替わります。 ------------------------------ 実際に試してみると、Object要素の内容が切り替わらずに、 ブラウザの新しいタブに表示されてしまいます。 そこで、2つの疑問 Q1.Object要素の仕様が変わったから、そうなってしまったのか?   そうであれば、参照先を知りたい。 Q2.リンクのクリックで、Object要素の内容を変えるにはどうする? くわしいかたの回答をお待ちしております。

    • ベストアンサー
    • HTML
  • リンクの色を保持

    iframeに表示されたページが、main.htmlのどのリンクを表示しているか分かるよう、main.htmlのページが表示された時に、リンク1の背景に色をつけたいと思っています。そして、リンク2がクリックされた時は、リンク2をクリックしていることが分かるよう、リンク1の背景の色をなくしリンク2の背景に色をつけたいと思っています。 つまり、 (1)main.htmlのページが表示された時に、リンク1の背景に色をつける (2)リンク2がクリックされた時は、リンク1の背景の色をなくしリンク2の背景に色をつける (3)リンク3がクリックされた時は、リンク2の背景の色をなくしリンク3の背景に色をつける をしたいと思っています。どのようにすればいいでしょうか?よろしくお願いします。 <--test.html--> <html> <head> <Meta Http-equiv="content-type" Content="text/html; charset=Shift_JIS"> <Title>テスト</Title> </Head> <body> <ul> <li><a href="main.html">main</a></li> </ul> </body> </html> <--/a.html--> <Html Lang="ja"> <Head> <Meta Http-equiv="content-type" Content="text/html; charset=Shift_JIS"> <Title>テスト</Title> </Head> <Body> <iframe src="http://yahoo.co.jp" name="test"></iframe> <ul> <li><a href="http://yahoo.co.jp" target="test">リンク1</a></li> <li><a href="http://www.goo.ne.jp/" target="test">リンク2</a></li> <li><a href="http://www.biglobe.ne.jp/" target="test">リンク3</a></li> </ul> </Body> </Html>

  • リンク先のID属性について

    ページの途中にリンクしたいとき、aタグにname属性を使用しますが、一般のタグにid属性を付加することもできますよね。 <a href="#jump">ジャンプ</a> ↓ <h3 id="jump">見出し</h3> こんな使い方ができると思うのですが、idを利用したリンク先指定は対応するブラウザが少ない、と某サイトに記されていました。しかし、具体的にブラウザのどのバージョンがだめなのか、などについては言及されていませんでした。 詳細をご存知の方、教えてください。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • アンカーをクリックしたときに色を変える方法

    たとえばページ中の <A NAME="news"></A> というリンクをクリックすると「news」の場所にジャンプしますね。そのようなアンカーがたくさんあるとします。ジャンプしたときに、その場所のタイトルなりの文字色を変えて目立つようにするワザはないでしょうか。 #項目が多いとどこにジャンプしたのかわかりにくいので。

  • rel属性とhref属性とtitle属性を組み合わせてリンクをつくる

    rel属性とhref属性とtitle属性を組み合わせてリンクをつくる お世話になっております。 HTML初心者です。 自作HPを作成しており、よくわからないことが出てきたので質問させてください。 見出しに "前に戻る","次に進む","HOME"などのリンクをつけたいと思っています。 アンカータグに、href属性を組み合わせて、使用すればできることはわかったのですが、 rel属性とhref属性とtitle属性を組み合わせて作ろうと思っています。しかし、 うまくいきません。 たとえば、headerタグ内に、 <link rel="next" href=".PAGE2.html" title="PAGE2について" /> というようなコーディングを行ったのですが、まったくうまくいきません。 ページ1において、”PAGE2について”という文字が出てきてそこをクリックするとページ2にとべる・・ というような仕組みを考えているのですが・・・ rel属性に関しての理解が不十分なためとは思うのですが、ご存知の方が いらっしゃたらご教授願います。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • htmlの要素と属性の関係について 1つの要素に

    htmlの要素と属性の関係について 1つの要素に対して使える複数の属性がグループになって決まっているんですか? この要素に使える属性はこの5つだけというように決まっているんですか? 例えば aアンカー要素に使えるのは href属性と他のなになにというように

  • HTMLの属性を自由に作ることはいいのか?

    (X)HTMLの規則にそって書け、とよく言われますが、果たして100%従うことだけが善なのでしょうか? CSSが普及してから、完全に文書とデザインを分けて考えるようになり、進化系として、完全なXML(XHTML)的文書にして、検索エンジンなどにもわかりやすい文書構造に、ということで盲信しているイメージがあります。もしXMLであるならば、より効果的な属性の設定などもあっていいんじゃないかと思うのです。 たとえば、ページングのリンクなどで 1 2 3 4 5 とページへのリンクアンカーがあるとして、通常は <a href="?page=1">1</a> <a href="?page=2">2</a> のような形になるでしょうが、XML(DOM)としては <a href="?page=1" page="1">1</a> <a href="?page=2" page="2">2</a> というような 独自に page という属性にそのページナンバーを入れた方が取得しやすいと思うのですが、こういうのでもルール外だから悪、と言われてしまうのでしょうか? その文書をparseしても、そのページナンバーを取得するのにもうひと工夫が必要になってしまいます(hrefを正規表現するなどして)。それなら属性に書いた方が絶対楽だし、その値の意味を属性名としてわかりやすく定義できると思うのですが、どうなんでしょうか? 気になる点としては、今後新しく予約語としてその属性名が定義される可能性があり、その値の意味が異なり、ブラウザの挙動もおかしくなる可能性は理解できます。でも、それはプログラミングしてる人なら、バージョンアップでよく出てくることですし、とりわけHTMLだけやめておけ、というのもおかしいと思いますし。絶対かぶらないように、属性名を作ればいいだけですけどね。servicename_page="2" みたいな(笑)。

  • a name(id)1回目で飛べない

    HTMLでのホームページ作成についてです。 (カテゴリー違いでこちらに移させていただきました。) 画像ファイルを40枚(01.gif~40.gif)貼り付けたページ「200800.html」を作りました。 画像ファイルの大きさは全て10kb程度です ページの途中の特定の場所にジャンプさせるため、アンカーを埋め込みました。 (アンカーは「name」と「id」を併用しています) <html><body> <img name="01" id="01" src="01.gif"><br> <img name="02" id="02" src="02.gif"><br> … <img name="39" id="39" src="39.gif"><br> <img name="40" id="40" src="40.gif"><br> </body></html> 「200800.html」へのリンクを貼ったページ「index.html」を作りました。 20番の画像へジャンプするように設定しました。 <html><body> <a href="image/200800.html#20">20番の画像</a> </body></html> ところがなぜか1回目のクリックでは20番の画像には飛びません。 (別の画像の中途半端な位置とか、その時によって違います。) 2回目以降はちゃんと飛びます。 どうやらブラウザが「200800.html」を全て読み込むまえに表示してしまうためおかしなところが表示されるようです。 2回目以降は1度読み込んでいるためちゃんと飛ぶようです。 win(IE6)でもmac(safari)でも同様です。 どうか良い解決策をお教えください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • POSTをする際にname指定したい。

    まずは下のソースを見てください。 <!--ここから--> <form action="./test.cgi#sample" method=post> <input type=hidden name=namae value="山田"> <input type="submit" name=mode2 value="送信"> </form> <a name="sample">ここにジャンプ</a> <!--ここまで--> 例えば上記のようなソースをtest.cgiというファイルに書きました。 submit後、sampleにジャンプするようにしました。 通常は上のソースで問題なくsampleに戻ってくるのですが、 しかしながら、DcomoのN904だけがtest.cgiにパラメーターが引き渡されないようなのです。 いわゆるnamaeの値である山田がわたされないということです。 そもそも<form action="./test.cgi#sample" method=post> という方法は間違っているのでしょうか? ご教授よろしくお願いいたします。

    • 締切済み
    • CGI

専門家に質問してみよう