質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

193閲覧

別ページからのタグアクセス

jiko676

総合スコア4

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/11/21 14:01

編集2019/11/21 21:36

https://irohacross.net/2015/02/jquery_tab.html
こちらのサイトを参考に、タグの切り替えを実装しましたが、jQueryダイレクトリンクのソースではタグの切り替えが動作せず、jQuery通常タグの方も併記すると動作いたしました。

また、別ページからアンカーリンクのタグは開いたのですが、同ページからのリンクではうまくタグが切り替わらず、何か間違えていることはありますでしょうか?

よろしく、ご教授いたたければ助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakkun61

2019/11/21 14:35

Haskell タグが付いていますが Haskell とは全く関係ないようです。
m.ts10806

2019/11/21 21:41

間違いもなにも再現確認できるコードがないと何も言えません。 参考サイトはあくまで参考。 問題が起きているのは質問者さんが書いたコードです。
jiko676

2019/11/22 06:42

html(リンク元) <ul> <li><a href="tab2.html#tab1">このリンクはTab1に飛びます。</a></li> <li><a href="tab2.html#tab2">このリンクはTab2に飛びます。</a></li> <li><a href="tab2.html#tab3">このリンクはTab3に飛びます。</a></li> </ul> リンク先(タブ) <div class="all_area"> <ul class="tab_area"> <li id="tab1" class="select">Tab1</li> <li id="tab2">Tab2</li> <li id="tab3">Tab3</li> </ul> <!-- tab1 start --> <div class="content_area"> <ul class="list_area"> <li>これはTab1の内容です</li> <li>これはTab1の内容です</li> <li>これはTab1の内容です</li> <li>これはTab1の内容です</li> </ul> <!-- /tab1 end --> </div> <!-- tab2 start --> <div class="content_area hide"> <p>これはTab2の内容です。これはTab2の内容です。これはTab2の内容です。これはTab2の内容です。これはTab2の内容です。これはTab2の内容です。</p> <!-- /tab2 end --> </div> <!-- tab3 start --> <div class="content_area hide"> <p>これはTab3の内容です<br> <img src="tabsample.gif" width="300" height="150"> </p> <!-- /tab3 end --> </div> <!-- /tab area end --> </div> jQuery //ダイレクトリンク $(function() { //location.hashで#以下を取得 変数hashに格納 var hash = location.hash; //hashの中に#tab~が存在するか調べる。 hash = (hash.match(/^#tab\d+$/) || [])[0]; //hashに要素が存在する場合、hashで取得した文字列(#tab2,#tab3等)から#より後を取得(tab2,tab3)     if($(hash).length){ var tabname = hash.slice(1) ; } else{     // 要素が存在しなければtabnameにtab1を代入する     var tabname = "tab1";} //コンテンツを一度すべて非表示にし、 $('.content_area').css('display','none'); //一度タブについているクラスselectを消し、 $('.tab_area li').removeClass('select'); var tabno = $('ul.tab_area li#' + tabname).index(); //クリックされたタブと同じ順番のコンテンツを表示します。 $('.content_area').eq(tabno).fadeIn(); //クリックされたタブのみにクラスselectをつけます。 $('ul.tab_area li').eq(tabno).addClass('select') $('ul.tab_area li').click(function() { //.index()を使いクリックされたタブが何番目かを調べ、 // indexという変数に代入します。 var index = $('ul.tab_area li').index(this); //コンテンツを一度すべて非表示にし、 $('.content_area').css('display','none'); //クリックされたタブと同じ順番のコンテンツを表示します。 $('.content_area').eq(index).fadeIn(); //タブについているクラスselectを消し、 $('.tab_area li').removeClass('select'); //クリックされたタブのみにクラスselectをつけます。 $(this).addClass('select') }); }); こういう感じになります。 これでリンク元が別ページの時は指定のタブを開いた状態でアクセスするのですが、 同ページにある時は、タブへ移動して指定のタブが開かないという事です。 よろしくお願いいたします。
guest

回答1

0

ちょっと個人的に気に入らないコードでしたので簡単に作ってみました。

No jQueryで書いてみました。

HTML

1 2<a href=#view-box1>1個目を表示</a> , 3<a href=#view-box2>2個目を表示</a> , 4<a href=#view-box3>3個目を表示</a> 5<div id=parent> 6 <div id=box1>1個目のものだよ</div> 7 <div id=box2><div>2個目のものだよ</div></div> 8 <div id=box3>3個目のものだよ</div> 9</div> 10

CsS

1 2#box2,#box3 { 3 display: none 4} 5

js

1 2function change() { 3 var hash = location.hash; 4 if(hash.replace('#view-','')!==''){ 5 var target = hash.replace('#view-',''); 6 var children = document.getElementById('parent').children; 7 for(i=0;i<children.length;i++){ 8 document.getElementById(children[i].id).style.display = 'none'; 9 } 10 document.getElementById(target).style.display = 'block'; 11 } 12} 13window.onload = change; 14window.onhashchange = change; 15

ハッシュ値が「view-なんとか」

IDが「parent」の中に入っている
IDが「なんとか」を表示できます。

サンプル

投稿2019/11/22 01:51

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問