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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

Q&A

解決済

1回答

754閲覧

smartyで動的にカスタムデータ属性を付与して、jQueryで判定したい

xyunow

総合スコア122

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

1グッド

1クリップ

投稿2018/02/23 16:13

編集2018/02/23 16:16

smartyでaタグにIDとカスタムデータ属性(data-item)を付与して、
jQuery側でカスタムデータ属性の値を読み込んで、判定したいです。
現在undefinedになってしまい、うまく値がとれていません。

Smarty

Smarty

1 <div> 2 {?foreach from=[ 3 [ 4 'id' => "item1", 5 'attribute' => "cat", 6 ], 7 [ 8 'id' => "item2", 9 'attribute' => "cat", 10 ], 11 [ 12 'id' => "item3", 13 'attribute' => "dog", 14 ] 15 ] key=ck item=ci name=cn?} 16 <div> 17 <a id="{?$ci.id?}” data-item="{?$ci.attribute?}> 18 </a> 19 </div> 20 {?/foreach?} 21 </div>

jQuery

jQuery

1(function () { 2 'use strict'; 3 4 /////////////////////////////////////////////////////////////////////// 5 6 var data = { 7 box1: { 8 item1: { 9 message: 'message1', 10 image: 'image1.png' 11 }, 12 item2: { 13 message: 'message2', 14 image: '2.png' 15 } 16 }, 17 box2: { 18 tri1: { 19 message: 'message3', 20 image: '5.png' 21 }, 22 tri2: { 23 message: 'message4', 24 image: '6.png' 25 }, 26 } 27 }; 28 29 $('a').on('click', function (evt) { 30 evt.preventDefault(); 31 32 var id = $(this).attr('id'); 33 34 //ここでカスタムデータ属性の値を読み込みたいです 35 var type = $('a').attr('data-item'); 36 console.log(type); 37 38 if(type==="dog"){ 39 var item = data.box1[id]; 40 console.log(item); 41 } 42 else if(type==="cat"){ 43 var item = data.box2[id]; 44 console.log(item); 45 } 46 47 }); 48 49})();
nao20👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

js

1// var type = $('a').attr('data-item'); 2// ↓ 3 var type = $(this).attr('data-item'); 4```**動くサンプル:**[https://jsfiddle.net/3h78cvkr/](https://jsfiddle.net/3h78cvkr/) 5 6--- 7 8**追記:** 9 10もう一箇所見つけました。 11 12```PHP 13<a id="{?$ci.id?}” data-item="{?$ci.attribute?}> 14 ↓ 全角なので半角に。 ↓ 全角なので半角に。 15<a id="{?$ci.id?}" data-item="{?$ci.attribute?}">

追記:

例示されたオブジェクトがそもそも解答が入っていないような。box1はdogじゃないと表示されないのにitem3が無かったり、box2はそもそも例示部分とは関係が無いもの(item+番号でないもの)が入っています。

投稿2018/02/23 16:21

編集2018/02/23 16:58
kei344

総合スコア69407

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

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

xyunow

2018/02/24 00:56

色々わかりづらいコードをかいてしまってすみません。 var type = $(this).attr('data-item'); thisだったんですね。 カスタムデータ属性の値がとれました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問