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

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

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

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

jQuery

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

Q&A

解決済

3回答

2629閲覧

jqueryでidを取得したものを異なる関数で使いたい

youya66

総合スコア20

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2015/01/07 03:49

jquery/jsのことで質問です。
以下のようにしたいのですが、どのようにすればいいのでしょうか。

$(document).on('click','.クラス名',function hoge (){
var id = $(this).parents().data('id');
});

$(document).on('click','.異なるクラス',function(){
//hogeで取得したidを表示する。
console.log(id);
});

ご教示よろしくお願いします

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

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

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

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

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

guest

回答3

0

通りすがりの者です。

1つ目のスクリプト(hoge)と2つ目のスクリプト(便宜的にfuga)のスコープを考慮すればよろしいかと。
ただし、fugaにてidを表示させるにはfugaより先にhogeが実行される必要がある、という大前提があります。
下記、最小限の修正でidを取得する一例です。

lang

1var id; 2 3$(document).on('click','.クラス名',function hoge (){ 4 id = $(this).parents().attr('id'); 5}); 6 7$(document).on('click','.異なるクラス',function(){ 8 console.log(id); 9});

※.data('id')ではid属性値の取得はできないと思いますよ。(試してませんが、、、)

投稿2015/01/07 05:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

youya66

2015/01/07 06:11

参考にさせていただきました。ありがとうございます
guest

0

function hoge(e) {
hoge.id = $(this).parent().attr("id");
}
$(document).on("click",".cssCls1", hope);

$(document).on("click",".cssCls2",function(e) {
alert(home.id);
});

てな感じでいけません?

投稿2015/01/07 05:13

caron

総合スコア13

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

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

youya66

2015/01/07 06:12

色々なやりかたがあるんですね。勉強になります。 ありがとうございます。
guest

0

ベストアンサー

変数のスコープを関数の外側に設ければ共有できます。

data()になっていたところはタグ属性のidの想定でattr()で試しています。

lang

1(function() { 2 3var id; 4 5$(document).on('click', '.class1', function() { 6 id = $(this).parents().attr('id'); 7}); 8 9$(document).on('click', '.class2', function() { 10 // hogeで取得したidを表示する。 11 console.log(id); 12}); 13 14})();

HTMLを含むコードをCodePenに投稿しました。

投稿2015/01/07 05:13

argius

総合スコア9390

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

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

youya66

2015/01/07 06:10

無事解決することができました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問