0

class="tab"で定義されたいくつかのhtml要素があります。

そして、私のjqueryファイルで、次の関数を定義しました。

  $('.tab').mouseleave( function() {
    alert($(this).name);
  });

「Contact」という名前のクラス「tab」の要素に対してマウスリーブをトリガーすると、アラートが表示されますが、「undefined」と表示されます。「お問い合わせ」を期待していた。

$(this)は私に何を与えますか?それは実際に私にDOM要素を与えますか?

NB。最終的には、マウスが要素を離れた側(北、南、東、または西)を調べられるようにしたいと思います。したがって、このアラートを実行して、その要素の幅と高さに実際にアクセスできるようにします。これまでのところ、私はその情報にアクセスできないようです。

4

8 に答える 8

3

nameはネイティブのjavascriptメソッドで$(this)あり、ネイティブのDOM要素ではなくjQueryオブジェクトであるを使用しています。これは次のようになりますthis

$('.tab').mouseleave( function() {
   alert(this.name);
});​

フィドル

于 2012-07-28T13:22:50.077 に答える
1

$(this)ネイティブDOM要素をラップするjQueryオブジェクトを提供します。

this求めるDOM要素です。

ここで、より包括的な説明を見つけることができます。

于 2012-07-28T13:19:20.987 に答える
1

名前は属性ですよね?したがって、$(this).attr('name')を確認してください

于 2012-07-28T13:19:57.443 に答える
1

$(this)JQueryオブジェクトを提供します。

thisDOM要素を提供します。

$(this).prop('name')「name」属性がそのHTML要素でサポートされているかどうかを呼び出すことで、名前を取得できます。

「name」属性は現在、フォーム要素(input、select、textarea、form)でのみサポートされています。POST動詞がサーバーに送信されるときにサーバーに送信される名前と値のペアの「名前」部分(つまり、「POST」メソッドを使用してフォームを投稿します)。

参考文献:

http://forum.jquery.com/topic/please-explain-attr-vs-prop-change-in-1-6

.prop()と.attr()

http://timmywillison.com/2011/When-to-use-.attr()-and-.prop().html

于 2012-07-28T13:19:57.363 に答える
1

jQueryを使用すると、次のように幅と高さを取得できます。

$(this).height(); //is the computed height eg. 200 without the dimension

特定のコード例については、$(this).prop('name');または$(this).attr('name'); //now deprecated

fooこれはからピックアップします<input name="foo" />

this.name要素にname属性があるかどうかを試すこともできます。これは、input要素にのみ適用する必要があります。ただし、属性がない場合は、undefinedが返され、エラーがスローされる可能性があります。

$(this)DOM要素が内部にあるjQueryオブジェクトです。thisDOM要素は直接です。

于 2012-07-28T13:19:57.643 に答える
1

jQueryオブジェクトを使用して、属性値を取得するために使用attrまたは関数を使用しています。prop

$('.tab').mouseleave( function() {
    // either should work
    alert($(this).attr('name'));
    alert($(this).prop('name'));
});
于 2012-07-28T13:19:57.997 に答える
1
     $('.tab').mouseleave( function() {
    alert($(this).attr('name'));
  });
于 2012-07-28T13:20:59.677 に答える
0

これは、$がラップされた要素の配列を提供するためです。したがって、$(this)は1つの要素を持つ配列になります。$(this).attr( "name")は、attrが配列であることを認識しているため、名前を指定します。必要に応じて、$(this)[0].nameまたは単にthis.nameを使用できます

于 2012-07-28T13:38:46.087 に答える