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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

394閲覧

サンプルのJSにリンクを付けたい

salsdffass

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/11/18 08:53

前提・実現したいこと

https://kodocode.net/design-css-selectlist/
こちらのサイトにある「カードタイプのセレクトボックスメニュー。」を実装したいのですが、
リンクの付け方が分かりません。

例)サンプルにある項目をクリックすると任意のページへ飛ぶ

HTML側でaタグを付けても全く動かないので、
JS側をいじる必要があるかと思いますが、見よう見まねでは動かなかったので
ご教示頂けると助かります。
どうぞよろしくお願いします。

該当のソースコード

JS

1$(document).ready(function(){ 2 3 var countOption = $('.old-select option').size(); 4 5 function openSelect(){ 6 var heightSelect = $('.new-select').height(); 7 var j=1; 8 $('.new-select .new-option').each(function(){ 9 $(this).addClass('reveal'); 10 $(this).css({ 11 'box-shadow':'0 1px 1px rgba(0,0,0,0.1)', 12 'left':'0', 13 'right':'0', 14 'top': j*(heightSelect+1)+'px' 15 }); 16 j++; 17 }); 18 } 19 20 function closeSelect(){ 21 var i=0; 22 $('.new-select .new-option').each(function(){ 23 $(this).removeClass('reveal'); 24 if(i<countOption-3){ 25 $(this).css('top',0); 26 $(this).css('box-shadow','none'); 27 } 28 else if(i===countOption-3){ 29 $(this).css('top','3px'); 30 } 31 else if(i===countOption-2){ 32 $(this).css({ 33 'top':'7px', 34 'left':'2px', 35 'right':'2px' 36 }); 37 } 38 else if(i===countOption-1){ 39 $(this).css({ 40 'top':'11px', 41 'left':'4px', 42 'right':'4px' 43 }); 44 } 45 i++; 46 }); 47 } 48 49 // Initialisation 50 if($('.old-select option[selected]').size() === 1){ 51 $('.selection p span').html($('.old-select option[selected]').html()); 52 } 53 else{ 54 $('.selection p span').html($('.old-select option:first-child').html()); 55 } 56 57 $('.old-select option').each(function(){ 58 newValue = $(this).val(); 59 newHTML = $(this).html(); 60 $('.new-select').append('<div class="new-option" data-value="'+newValue+'"><p>'+newHTML+'</p></div>'); 61 }); 62 63 var reverseIndex = countOption; 64 $('.new-select .new-option').each(function(){ 65 $(this).css('z-index',reverseIndex); 66 reverseIndex = reverseIndex-1; 67 }); 68 69 closeSelect(); 70 71 72 // Ouverture / Fermeture 73 $('.selection').click(function(){ 74 $(this).toggleClass('open'); 75 if($(this).hasClass('open')===true){openSelect();} 76 else{closeSelect();} 77 }); 78 79 80 // Selection 81 $('.new-option').click(function(){ 82 var newValue = $(this).data('value'); 83 84 // Selection New Select 85 $('.selection p span').html($(this).find('p').html()); 86 $('.selection').click(); 87 88 // Selection Old Select 89 $('.old-select option[selected]').removeAttr('selected'); 90 $('.old-select option[value="'+newValue+'"]').attr('selected',''); 91 92 // Visuellement l'option dans le old-select ne change pas 93 // mais la value selectionnée est bien pris en compte lors 94 // de l'envoi du formulaire. Test à l'appui. 95 96 }); 97});

試したこと

onChangeを入れてoption valueにURLを入力

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

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

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

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

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

cerfweb

2020/11/18 13:13

jQueryのバージョンを教えてください。
salsdffass

2020/11/18 23:23

3.5.1です。 情報が抜けていて申し訳ございません。 どうぞよろしくお願いいたします。
cerfweb

2020/11/19 08:38

HTMLやcssが提示されていませんが、冒頭に書かれたサイトにあるものそのままでしょうか。その場合、jQueryのバージョンが合わないのでそのままでは動かないと思いますが。
guest

回答1

0

こんばんは。

全然試していませんが、以下を追加するとどうでしょうか。

js

1$('.new-select').append('<div class="new-option" data-value="'+newValue+'"><p><a href="http://example.com">'+newHTML+'</a></p></div>'); 2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^

投稿2020/11/20 08:33

Lhankor_Mhy

総合スコア36960

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問