人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

jQueryのメソッドチェーン中で各要素の属性にアクセスする方法を教えて下さい。

例えば、以下のリストの各要素に対して、メソッドhogeをparamを引数にして呼び出したいです。
<ul>
<li class="target" param="1">a</li>
<li class="target" param="2">b</li>
<li class="target" param="3">c</li>
</ul>

以下の様な感じでアクセスしたいんですが、上手く情報を見つけられませんでした。
$(".target").hoge(this.attr("param"))

よろしくお願いします。

●質問者: taichino
●カテゴリ:コンピュータ
✍キーワード:hoge jQuery アクセス メソッド リスト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● y-kawaz
●50ポイント ベストアンサー

this.attr("param") ではなく $(this).attr("param") か this.getAttribute("param") じゃないでしょうか?

↓こんな感じのコードで動作確認できました。

$(".target").click(function(){
 alert( $(this).attr("param") );
});
$(".target").click(function(){
 alert( this.getAttribute("param") );
});

ちなみに以下のようなことは出来ません。ここではthisに入ってるものが違いますからね。

$(".target").attr("title", $(this).attr("param"));
});

こういうことをしたい場合は以下のようにすれば良いです。

$(".target").each(function(){
$(this).attr("title", $(this).attr("param"));
});
◎質問者からの返答

y-kawaz 様

ご回答ありがとうございます。

最後の例が求めていたコードです!

なるほど、eachと$(this)で要素ごとに処理するわけですね。

若干メソッドチェーンが見づらくなりますが、十分簡潔なので嬉しいです!

ありがとうございました。


2 ● regnif
●35ポイント

(function($){

jQuery(document).ready( function() {

$(".target").each(function(){

alert( $(this).attr("param") );

//$(this).attr("param").hoge();

});

});

})(jQuery);

で、どうでしょう?param属性の値1,2,3を取得(指定)したいんですよね?

もし、a,b,cを取得(指定)したいなら、

alert( $(this).html() );

alert( $(this).text() );

です。

paramでhoge()を呼ぶなら、直接引数ではないですが、上記のコメント箇所のような記述で良いです。

余計な疑問ですが、何をしたいんでしょう?向学のための聞かせてください。

◎質問者からの返答

i4ooon 様

ご回答ありがとうございます。

jQueryのプラグイン化のアプローチですね。

これでも処理したい事は達成できるんですけど、

変数のスコープが広くなってしまうので、少し抵抗があります。

ちなみに、やりたい事はサーバサイドからのデータの受け渡しです。

動的に作成したページの情報に基づいてjavascriptに処理をさせるのに、

何が一番シンプルかと考えまして、html中の各要素に埋め込む事にしました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ