Javascript 如何使用空字符串启用包含?
为什么我的代码不起作用?我需要在Javascript 如何使用空字符串启用包含?,javascript,jquery,Javascript,Jquery,为什么我的代码不起作用?我需要在code=”“时显示div。 若全局变量代码包含字符串的某些部分,我需要在我的项目中禁用按钮 let code=”“; $(“.button”)。单击(函数(){ 代码=代码+z; 控制台日志(代码); }) if(代码包括(“z”)){ $(“.hide”).css(“显示”、“可见”); 控制台日志(代码); }else if(代码包括(“”)){ $(“.hide”).css(“显示”、“无”); 控制台日志(代码); } 点击我 Im hidden i
code=”“
时显示div。
若全局变量代码包含字符串的某些部分,我需要在我的项目中禁用按钮
let code=”“;
$(“.button”)。单击(函数(){
代码=代码+z;
控制台日志(代码);
})
if(代码包括(“z”)){
$(“.hide”).css(“显示”、“可见”);
控制台日志(代码);
}else if(代码包括(“”)){
$(“.hide”).css(“显示”、“无”);
控制台日志(代码);
}
点击我
Im hidden if code=“”。
在您的示例中,if else是在脚本首次运行时执行的。因此,代码从不包含z,并且不会在每次单击时运行if-else检查。试试这个
let code = "";
$(".button").click(function() {
code = code + "z";
console.log(code);
if (code.includes("z")) {
$(".hide").css("display", "visible");
console.log(code);
} else if (code.includes("")) {
$(".hide").css("display", "none");
console.log(code);
}
})
由于if/else是在click事件之外编写的,因此当页面加载时,它们只执行一次。单击按钮时,它们根本不执行。您必须在单击按钮时执行该条件 请注意:不是属性的正确值(它本身是另一个属性),请改用block作为属性值
let code=”“;
$(“.button”)。单击(函数(){
代码=代码+z;
控制台日志(代码);
if(代码包括(“z”)){
$(“.hide”).css(“显示”、“块”);
控制台日志(代码);
}
else if(代码包括(“”)){
$(“.hide”).css(“显示”、“无”);
控制台日志(代码);
}
});
if(代码包括(“”)){
$(“.hide”).css(“显示”、“无”);
控制台日志(代码);
}
点击我
如果code=“”。
您的if语句if(code.includes(“z”){}
仅在页面加载时运行一次,而不是每次单击按钮。相反,您可以将此检查添加到函数中,并在页面加载时以及通过调用函数单击按钮时进行检查
样式display:visible
也无效。您可以使用display:block
请参见下面的工作示例:
let code=”“;
函数检查码(){
if(代码包括(“z”)){
$(“.hide”).css(“display”、“block”);//您可以使用.show()而不是.css()
}else if(代码包括(“”)){
$(“.hide”).css(“display”,“none”);//您可以使用.hide()而不是.css()
}
}
$(“.button”)。单击(函数(){
代码=代码+z;
控制台日志(代码);
检查代码();
});
检查代码()代码>
点击我
如果code=“”,则Im隐藏。
这是因为您的逻辑if在单击事件之外,并且在页面加载时会被评估。您的逻辑在这里设计得不好。您需要在单击功能中添加if
和else if
,并需要为设置一些CSS。隐藏从显示开始:无