JSLint 警告:`Expected ':' and instead saw '='
JSLint warning: `Expected ':' and instead saw '='
我有一个转到顶部按钮,当用户在页面上向下滚动时会出现该按钮。该按钮按预期工作,但在 JLint 中,它会发出警告:Expected ':' and instead saw '='.
如何更正代码:
var topBtn = document.createElement("button");
topBtn.innerHTML = "Top";
var topBtnWrapper = document.getElementById("topBtnWrap");
topBtnWrapper.appendChild(topBtn);
window.onscroll = function() {
((document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) ? topBtn.style.display = "block" : topBtn.style.display = "none");
};
我猜你是这个意思:
topBtn.style.display = document.body.scrollTop > 500 || document.documentElement.scrollTop > 500
? "block"
: "none";
三元运算符并不是流控制结构。
问题出在这里:
((document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) ? topBtn.style.display = "block" : topBtn.style.display = "none");
这似乎是一个三元运算符,但三元运算符是一种决定使用哪个值而不是 运行 语句的方式。
这可以更好地表示为 if-else 块:
if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
topBtn.style.display = 'block';
} else {
topBtn.style.display = 'none';
}
如果您想继续使用三元运算符,它应该是这样的:
topBtn.style.display = document.body.scrollTop > 500 || document.documentElement.scrollTop > 500
? 'block'
: 'none';
三元运算符的格式为:
x = condition ? option1 : option2
不是:
condition ? x = option1 : x = option2
您的代码应如下所示:
topBtn.style.display =
(document.body.scrollTop > 500 || document.documentElement.scrollTop > 500)
? "block"
: "none";
我有一个转到顶部按钮,当用户在页面上向下滚动时会出现该按钮。该按钮按预期工作,但在 JLint 中,它会发出警告:Expected ':' and instead saw '='.
如何更正代码:
var topBtn = document.createElement("button");
topBtn.innerHTML = "Top";
var topBtnWrapper = document.getElementById("topBtnWrap");
topBtnWrapper.appendChild(topBtn);
window.onscroll = function() {
((document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) ? topBtn.style.display = "block" : topBtn.style.display = "none");
};
我猜你是这个意思:
topBtn.style.display = document.body.scrollTop > 500 || document.documentElement.scrollTop > 500
? "block"
: "none";
三元运算符并不是流控制结构。
问题出在这里:
((document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) ? topBtn.style.display = "block" : topBtn.style.display = "none");
这似乎是一个三元运算符,但三元运算符是一种决定使用哪个值而不是 运行 语句的方式。
这可以更好地表示为 if-else 块:
if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
topBtn.style.display = 'block';
} else {
topBtn.style.display = 'none';
}
如果您想继续使用三元运算符,它应该是这样的:
topBtn.style.display = document.body.scrollTop > 500 || document.documentElement.scrollTop > 500
? 'block'
: 'none';
三元运算符的格式为:
x = condition ? option1 : option2
不是:
condition ? x = option1 : x = option2
您的代码应如下所示:
topBtn.style.display =
(document.body.scrollTop > 500 || document.documentElement.scrollTop > 500)
? "block"
: "none";