18

コンテキスト: 特定のボタンのクリックに基づいて ajax クエリを実行するフォームとスクリプトを作成しています。同じクラスの要素を持つ div ブロックが複数あり、ボタンがクリックされた div ブロックに基づいて、異なるフォームが処理されます。

プログラムの開始の一環として、明らかに単純な jQuery 呼び出しから始めました。

特定のクラスに onclick イベントを追加してから、その要素の兄弟の CSS 値を取得しようとしています。

エラー: というエラーが表示されTypeError: this.siblings is undefinedます。

質問: jQuery を使用して要素の兄弟を反復処理する適切な方法は何ですか?

私のコード:

HTML:

<a class="btn LiveStatsBtn"><span class="btn-label">Get Stats now</span> </a>

JavaScript:

$(document).ready (function()
{ 
    $('.LiveStatsBtn').click(function(){
        this.siblings.each( function () {
            var tx=this.css();
            alert(tx);
        });
    });
});
4

2 に答える 2

28

jQuery イベント ハンドラーでthisは、DOM 要素を参照し、jQuery オブジェクトではありません。あなたはそれを1つにラップする必要があります:

$(this).siblings().each(function() {
  // ...
});

また、「siblings」は関数であるため、要素の兄弟をラップする新しい jQuery オブジェクトを取得するには、それを呼び出す必要があることに注意してください。

于 2013-08-10T14:07:36.753 に答える
2

siblingsは関数なので、括弧が必要です:

$(document).ready (function()
{ 
    $('.LiveStatsBtn').click(function(){
        $(this).siblings().each( function () {
            var tx=$(this).css();
            alert(tx);
        });
    });
}); 

http://api.jquery.com/siblings/

于 2013-08-10T14:07:27.780 に答える