Javascript 从if语句中的比较中获取值/解决方案

Javascript 从if语句中的比较中获取值/解决方案,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,我在if语句中进行了比较,以检查id是否相同,但我想检测B元素,该元素与a元素具有相同的id,并给他一个类。您可以在此脚本中看到问题: jQuery('.button')。单击(函数(){ var a=jQuery('.a').attr('id')) var b=jQuery('.b').attr('id')) 如果(a==b){ //“jQuery(this)”应该是detectet B元素,它与A元素具有相同的“id” // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

我在
if
语句中进行了比较,以检查id是否相同,但我想检测
B
元素,该元素与
a
元素具有相同的id,并给他一个类。您可以在此脚本中看到问题:

jQuery('.button')。单击(函数(){
var a=jQuery('.a').attr('id'))
var b=jQuery('.b').attr('id'))
如果(a==b){
//“jQuery(this)”应该是detectet B元素,它与A元素具有相同的“id”
// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
jQuery(this).addClass(“活动”);
jQuery(this.css)(“背景”、“红色”);
//但它将按钮检测为“jQuery(this)”
}否则{
返回;
}
});
.a,
B
c{
宽度:100px;
高度:100px;
边缘:1米;
背景:蓝色;
}

A.
B
C

将类添加到元素。

尝试以下操作:您需要获取b元素jquery对象,这里jquery(this)是您单击的按钮

jQuery('.button')。单击(函数(){
var a=jQuery('.a').attr('id');
var$belement=jQuery('.b');
变量b=$belement.attr('id'))
如果(a==b){
//“jQuery(this)”应该是detectet B元素,它与A元素具有相同的“id”
// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
$belement.addClass(“活动”);
$belement.css(“背景”、“红色”);
//但它将按钮检测为“jQuery(this)”
}
否则{
返回;
}
});
.a、.b、.c{
宽度:100px;
高度:100px;
边缘:1米;
背景:蓝色;
}

A.
B

C
以下是经过优化的代码,您可以查看一下。您可以使用
数据
属性代替ID:

jQuery('.button')。单击(函数(){
var a=jQuery('.a')。数据('check');
var$belement=jQuery('.b');
变量b=$belement.data('check');
如果(a==b){
$belement.addClass(“活动”).css(“背景”、“红色”);
}
});
.a,
B
c{
宽度:100px;
高度:100px;
边缘:1米;
背景:蓝色;
}

A.
B

C
ID应该是唯一的您有相同的块ID是的类名可以是通用的而不是DOM ID。您的整个逻辑是有缺陷的,因为您不应该有两个元素具有相同的
ID
attributeThanks,这很有帮助。解决办法很简单。我就知道我的麻烦就要来了^^
jQuery('.button').click(function() {
    var a = jQuery('.a').attr('id')
    var b = jQuery('.b').attr('id')
    if (a === b ) {
          // "jQuery(this)" should be the detectet B-element, which has the same "id" as A
          // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
          jQuery('.b').addClass("active");
          jQuery('.b').css("background", "red");
          // But it detects the button as "jQuery(this)"
    }
    else {
      return;
    }
});