
質問です。html文書が以下のようにあり、
<ul class="test">
<li><a href="example1.html">example1</a></li>
<li><a href="example2.html">example2</a></li>
<li><a href="example3.html">example3</a></li>
<li><a href="example4.html">example4</a></li>
</ul>
example1.htmlからexample4.htmlのそれぞれのURL(実際にはパラメーターがついてその都度変動します)を取得して、そのURLを同じ文書内の別の場所にある<a></a>タグ内にそれぞれ挿入したいです。丸きりの素人で、色々と調べてみましたがずばり当てはまるものが見つかりません。
出来ましたらそのままコピペ出来るかたちでお教えいただけたら助かります。
どうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
<!DOCTYPE html>
<meta charset="UTF-8">
<title>href or link</title>
<style>
</style>
<body>
<ul class="test">
<li><a href="example1.html">example1</a></li>
<li><a href="example2.html">example2</a></li>
<li><a href="example3.html">example3</a></li>
<li><a href="example4.html">example4</a></li>
</ul>
<p>
<a id="result" href="">Jump</a>
</p>
<script>
// a要素の取得
let a = document.querySelectorAll ('.test li a');
// a要素から href を抽出
let href = [...a].map (a => a.getAttribute('href'));
let rst = document.querySelector ('#result');
rst.textContent = href[2];
rst.href = href[2];
</script>
ご回答有難うございます。早速試してみましたところ、意図した動きが確認できました。
ただ、CGIプログラム内のテンプレートで使用したところ、なぜか飛び先が403エラーとなってしまいました。
原因は勿論私には分かりません。また色々と試してみようと思います。どうもありがとうございました。
No.4
- 回答日時:
No3です。
今、気が付きましたが、No2様が既にjavascriptで実現する例を示してくださっていましたね。(気付くのが遅すぎ?(笑))
ですので、そちらを利用することで、いかようにもできることと思います。
No.3
- 回答日時:
No1です
>別の場所の<a></a>内をクリックしたときに~~
<a>のマークアップはリンクの為のマークアップです。
ブラウザは、そこをクリックすると、aタグ内に記されたリンク先に遷移する機能を備えています。
そのリンクをわざわざ殺してまで、他へ遷移させるというのは本来のマークアップの主旨から外れていませんか?
自動車を運転するのに、「ハンドルを効かなくさせておいて、別のところにあるハンドルで運転したい」みたいなことになっているような気がします。
備えられている本来の機能を利用できない理由が何かあるのでしょうか?
>それぞれのURL(実際にはパラメーターがついてその都度変動します)
遷移先が動的に変わるのであるなら、その処理の一環として、同時に「別のリンク」も変える仕組みにしておくのが妥当かと思いますけれど。
ご質問文を読む限りでは、どうもそういうことでも無いように思えますので・・・
>JSの書き方がまるで分かっておりませんので~
わからないものを使うと、何かあったときに、まるきりのお手上げになるのが常ですけれど…?
(ちょっとした修正や変更、あるいは不具合等)
例えば、現状の情報だけをもとに一例を示したとしても、質問者様の実際の内容に適用する際にうまくいくのかどうかでも不明です。
>別の場所の<a></a>内をクリックしたときに、上記で取得したURLに
>遷移できる例文をご教授いただければとても助かります。
もちろんスクリプトで実現することも可能ですが、スクリプトをOFFにしているユーザはリンクをクリックしても、質問者様が意図するところとは別のページへ遷移することになってしまいます。
方法は異なりますし一般的とも思えませんが、以下は、同じリンクを「別のところ」に表示させた一例です。
(例なので、全部ひとまとめにして扱っていますけれど)
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<style type="text/css">
.test>li { position:relative; }
.test>li>a::after{
content:"別のリンク"; text-decoration:underline;
position:absolute; top:20em; left:0;
}
</style>
</head>
<body>
<ul class="test">
<li><a href="example1.html">example1</a></li>
<li><a href="example2.html">example2</a></li>
<li><a href="example3.html">example3</a></li>
<li><a href="example4.html">example4</a></li>
</ul>
</body>
</html>
色々と誤解があるようですが、私の説明不足ということで。
<ul class="test">
<li><a href="example1.html">example1</a></li>
<li><a href="example2.html">example2</a></li>
...</ul>
という文があって、このリンク先は動的に変化します。また、これはCGIで結果的に書き出される文書で、そのスタイルもプログラム内で指定されています。プログラムが意図している所定の位置に所定のかたちで書き出される分には何も問題ないのですが、同じページ内のいくつかの場所に、それぞれ異なるスタイルを指定した、複数の同じリンクを貼りたいわけです。プログラムそのものをいじる知識は勿論ありませんから、プログラムが書き出したリンク先を取得して、そこに飛べるスタイルの異なる<a>example1</a>を書きたいと思った次第です。プログラムの関係上、それぞれをスタイルシートでいじることは結構な手間と考えましたので。
ですので、別にハンドルがどうのという話ではありませんよ。
いずれにいたしましても、ご回答有難うございました。
No.1
- 回答日時:
こんにちは
>出来ましたらそのままコピペ出来るかたちでお教えいただけたら
「同じ文書内の別の場所にある<a></a>タグ内」というのを明示しないと、「コピペ」できるものは無理でしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS htmltとcssの連携をして画像縮小について 1 2022/11/15 20:32
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS インラインブロックの中のテキストを上下中央に合わせたい 1 2022/12/24 17:46
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JS <a></a>タグ内のリンク先ア...
-
オンマウスで画像ロールオーバ...
-
jQueryでヒアドキュメントを使...
-
jQueryのeqで最後からn番目以降...
-
下記のようにクリックすると、...
-
CSSとJavaScriptを使ってドロッ...
-
【JQuery】アコーディオンの入...
-
マウスカーソルを画像や文字に...
-
MAX関数を使ってからLEFT JOIN...
-
画像ランダム表示、しかしダブ...
-
新規ウインドウ+submit
-
JSPでの画像ファイル表示
-
CSSで親ボックスの背景画像を設...
-
イメージをあらかじめ読み込む...
-
JSで動的にリンクを作成
-
c++std::string型をTCHARに変換...
-
Slick.jsのオプションrtlについて
-
3点リーダーの作り方
-
インラインフレームでのクッキ...
-
mapリンクとテキストスタイルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
同一ページ内で、任意の文字列...
-
タブ切り替えの初期表示について
-
ネストされたチェックボックス...
-
JQueryタブのアクティブ アン...
-
Jquery の slide.toggle で要素...
-
ホームページビルダー17のフ...
-
【javascript で動的に a タグ...
-
javascriptで正規表現の検索が...
-
JavascriptのDOMについて
-
javascript テキストエリアを1...
-
for(var i=0;...) の i の値を...
-
クリックで表示、非表示するメ...
-
jQueryで電卓を作っているのですが
-
js ライブラリ iscrollの利用に...
-
jquery ドロップダウンメニュー...
-
プルダウンのメニュー表示について
-
jQueryのhide,showで中の要素が...
-
gridstack.jsについて教えてく...
-
【HP制作】メールフォームの設...
おすすめ情報
お返事有難うございます。コピペというのは語弊がありました。
urlの取得はきっと、
document.getElementsByClassName('test').children[0].getElementsByTagName('a')[0].getAttribute('href') (example1.htmlの取得)
ということでできるのかと、調べております。
別の場所の<a></a>内は、onclickイベントでよいのかなと思っています。
つまり、JSの書き方がまるで分かっておりませんので、コピペというよりは、
別の場所の<a></a>内をクリックしたときに、上記で取得したURLに遷移できる例文をご教授いただければとても助かります。