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");
                };      

谢谢艺术

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");
    }
});

如果这两个元素根本没有通用代码,最好使用两个选择器和函数,而不是将所有内容放在一个函数中。

于 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 回答