带有 AND 和 OR 的 JavaScript if 语句

标签 javascript if-statement

我正在使用 jQuery 的浏览器插件来检索浏览器名称和版本。无论如何,如果用户使用特定浏览器和/或特定版本,我会尝试显示一条消息。这是我正在使用的:

if (($.browser.name == "msie" && $.browser.version <= "8.0") || $.browser.name == "safari" || $.browser.name == "opera") {
    // Do something
}

一切工作正常,除了 IE9 中显示错误之外,这是不应该的。我希望它仅在版本 8.0 或更低版本时显示。这句话有什么问题吗?

提前致谢。

编辑:我现在使用 $.browser.versionNumber 但它仍然不起作用。像这样:

if (($.browser.name == "msie" && $.browser.versionNumber <= "8") || $.browser.name == "safari" || $.browser.name == "opera") {
    // Do something
}

$.browser.versionNumber 检索一个数字。在这种情况下,如果我使用 IE9,它将发送“9”。

最佳答案

正如其他人已经说过的,没有 <=在字符串上定义的运算符。

有一个<=字符串上的运算符,但它不是您需要的运算符。例如:

alert('2' <= '10'); // this yields false.

解决方案是使用$.browser.versionNumber :

browser.versionNumber: The version of the browser (note, as an integer).

像这样:

if (($.browser.name == "msie" && $.browser.versionNumber <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
    // Do something
}

关于带有 AND 和 OR 的 JavaScript if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383859/

相关文章:

excel - 如何在我的公式中的数据输入 Excel 之前将我的结果字段保持空白?

javascript - 使用 Javascript 对原始差异输出进行颜色处理

javascript - Angular 用户界面 - 选择 : tagging without multiple - why isn't this working?

javascript - DataTables:获取匹配单列条件的整行的源数据

javascript - Chrome 扩展程序注入(inject)当前标签页

c# - try/catch 与 if/then/else - 特定案例

php - NSData(if 语句)

javascript - 从 jquery 更新时,jscolor 文本框背景未更改

python - 将整数分配给列表

c - 设置 if else 条件来过滤数据