0

jqueryで(this)オブジェクトの値.attr()を取得することは可能ですか?

アラート(これ)が返さtrue[object HTMLInputElement]れるので、機能し==ません

  $("#tag1, #tag2").keyup(function(event){
         if(this == "#tag1"){
            alert("This is tag1");
            };
         if(this == "#tag2"){
            alert("This is tag1");
                };      

thxアート

4

4 に答える 4

4

現在の要素を一致させる原因となったセレクターを取得することはできません。特定の要素には多くの可能なセレクターがあります。によって作成されたjQueryオブジェクト$("#tag1, #tag2")がまだ利用可能であれば理論的には可能ですが、それは信じられないほど醜いでしょう。

ただし、を使用this.idして要素のID('tag1'または'tag2'あなたの場合)にアクセスし、コードで使用することができます。

$("#tag1, #tag2").keyup(function(event) {
    if(this.id == "tag1") {
        alert("This is tag1");
    }
    if(this.id == "tag2") {
        alert("This is tag1");
    }
});

2つの要素に共通のコードがまったくない場合は、すべてを1つの関数に入れるのではなく、2つのセレクターと関数を使用する方がはるかに優れています。

于 2012-06-26T09:36:20.437 に答える
2

this.id(おそらく推奨される)を使用してIDを比較するか、 jQueryのis()メソッドを使用できます。

  $("#tag1, #tag2").keyup(function (event) {
      if (this.id == "tag1") {
          alert("This is tag1");
      };
      if (this.id == "tag2") {
          alert("This is tag2");
      };

また...

  $("#tag1, #tag2").keyup(function (event) {
      if ($(this).is("#tag1")) {
          alert("This is tag1");
      };
      if ($(this).is("#tag2")) {
          alert("This is tag2");
      };
于 2012-06-26T09:36:25.983 に答える
1

あなたはこれを求めている?:

$("#tag1, #tag2").keyup(function(event){
     alert("This is" + $(this).attr('id'));
});
于 2012-06-26T09:38:36.223 に答える
0

あなたもスイッチを使うことができます

$("#tag1, #tag2").keyup(function(event){
  target = $(this).attr('id');
     switch(target) {
     case:"#tag1"
        alert("This is tag1");
        break;
     case:"#tag2"
        alert("This is tag2");
        break;
      }
 });
于 2012-06-26T09:56:00.053 に答える