Jquery 如果($(";[id*=&x27;字符串&&x27;])显示()则单击()
如果单击的按钮包含特定的文本字符串,我试图显示一些元素,但我的代码只识别if。即使单击的按钮不包含字符串,它也不会显示“else”。我试图用答案和jQuery文档来解决这个问题,但是我没能得到结果。有人能支持我理解我的错误吗Jquery 如果($(";[id*=&x27;字符串&&x27;])显示()则单击(),jquery,Jquery,如果单击的按钮包含特定的文本字符串,我试图显示一些元素,但我的代码只识别if。即使单击的按钮不包含字符串,它也不会显示“else”。我试图用答案和jQuery文档来解决这个问题,但是我没能得到结果。有人能支持我理解我的错误吗 $('.customizebtn')。单击(函数(){ 如果($(“[id*='boat']”){ 美元(“#额外的船”).show() }否则{ $(“#额外住宅”).show() } }); 船 住宅的 额外的船 发生这种情况是因为在if($(“[id*='boat
$('.customizebtn')。单击(函数(){
如果($(“[id*='boat']”){
美元(“#额外的船”).show()
}否则{
$(“#额外住宅”).show()
}
});代码>
船
住宅的
额外的船
发生这种情况是因为在if($(“[id*='boat']”)内部有一个jQuery对象,您只需检查该值是否真实,这总是正确的。即使使用if($(“[id*='boat']”).length)
您仍然会得到相同的结果,因为在两个按钮上都单击该按钮,因此在这两种情况下,length都返回1
要解决此问题,您需要检查单击按钮的id
是否有文本boat
或不类似:
this.id.indexOf('boat') > -1
现在,当您单击BOAT
按钮时,this.id
返回a-BOAT
,而this.id.indexOf('BOAT')
返回2
,即>-1,因此它进入if
语句中
现在,当您单击RESIDENTIAL
按钮时,this.id
返回a-RESIDENTIAL
,而this.id.indexOf('boat')
返回-1
,该值等于-1,并计算为false,因此它现在进入else
语句
$('.customizebtn')。单击(函数(){
console.clear();
console.log(this.id,this.id.indexOf('boat');
如果(此.id.indexOf('boat')>-1){
美元(“#额外的船”).show()
}否则{
$(“#额外住宅”).show()
}
});代码>
船
住宅的
额外的船
额外住宿
如果($(“[id*='boat']”)。长度)
完美!现在我明白了。我问题的“语法”是错误的。