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