函数仅适用于第一个条件
Function only works for the first condition
按下传递给函数PIG元素x的按钮项目ID,并在无边框时更改其边框-按2px,再次按下时边框消失。仅适用于第一个条件。请帮忙。
function PIG(x) {
if (!(document.getElementById(x).style.border = "none")) {
document.getElementById(x).style.border = "2px solid green";
}
else if(!(document.getElementById(x).style.border = "2px solid green")){
document.getElementById(x).style.border = "none";
}
}
您使用的是赋值运算符,而应该使用比较运算符:
if (!(document.getElementById(x).style.border = "none")) {
应为:
if (!(document.getElementById(x).style.border === "none")) {
// --------------------------------------------^
您的if语句将无法按预期工作!
if ( !(document.getElementById(x).style.border = "none"))
它将将您的边界更改为none,而不是将边界值检查为none,这会破坏您的代码逻辑!
先解决这个问题,然后再次记录您的值。我相信你会得到解决方案的。
先修复,然后重写/记录您的代码:if (!(document.getElementById(x).style.border === "none"))
首先,如前所述,您需要使用比较运算符===
而不是赋值运算符=
。其次,您的代码中有一个逻辑错误,请注意!
的意思是而不是因此:
if (!(document.getElementById(x).style.border === "none")) {
document.getElementById(x).style.border = "2px solid green";
}
else if(!(document.getElementById(x).style.border === "2px solid green")){
document.getElementById(x).style.border = "none";
}
平均值:
/*
If the border is NOT "none" (In other words it's likely solid green)
-> Make the border solid green
Otherwise if the border is NOT solid green (In other words it's likely none)
-> Make the border none
*/
显然,您想要删除"NOT",所以请删除代码中的NOT运算符!
。
这是一个Fiddle示例
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - 当满足条件时,下拉值重置为第一个值
- 两个条件 - 这将是第一个
- CSS的条件包含,但不作为最后一个(或第一个)CSS
- jQuery AJAX在第一个PHP条件之后不显示输出