Javascript if语句与AND和OR
Javascript if statement with AND and OR
我使用jQuery的浏览器插件来检索浏览器名称和版本。无论如何,我试图显示一个消息,如果用户正在使用某个浏览器和/或某个版本。下面是我使用的:
if (($.browser.name == "msie" && $.browser.version <= "8.0") || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}
这一切工作正常,除了错误显示在IE9,它不应该。我希望它只显示,如果它的版本8.0或更低。这种说法有什么问题?
提前感谢。
EDIT:我现在使用的是$.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
:
浏览器。versionNumber:浏览器的版本(注意,为整数)。
:
if (($.browser.name == "msie" && $.browser.versionNumber <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}
注意比较字符串和比较数字会得到不同的结果
$.browser.version <= "8.0"
例如 "10.0" < "8.0"
也许您只对主版本号感兴趣,那么您可以使用parseInt来提取它。
IE9是否在您的网站上以兼容和/或怪癖模式运行?
你不应该在字符串上使用"<=":
if (($.browser.name == "msie" && $.browser.version <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}
相关文章:
- 如果查询使用AND失败,但使用OR有效
- 模棱两可的multi_select过滤器 - AND 和 OR 条件 - javascript
- AND 和 OR 运算符、正则表达式和值长度
- 布尔表达式-与AND、OR逻辑运算符混淆以及它们的工作方式
- 基于javascript中的AND OR逻辑拆分字符串
- 如何在jQuery选择器中具有“and”和“or”条件
- Javascript If Condition with multiple OR and AND
- 布尔代数 - 使用 AND/OR 导出条件表达式是棘手的部分
- UglifyJS: concat and minify or viceversa?
- 逻辑 AND 和 OR 的计算顺序
- Java script中的OR和AND语句
- 迭代两个数组并执行 AND / OR 比较 = 返回 true
- 如何使用 JavaScript 进行 OR 门和 AND 门操作实现
- 简单的多项选择,带有类、标签等的 AND 而不是 OR?.JS
- Javascript 如何使用带括号的 and/or 运算符
- 我应该使用 if-then-else 或 and or 运算符来检查 Javascript 中的空值吗?
- 可以 And and and or 替换 if()
- regex匹配除AND、OR和NOT之外的所有单词
- Node.js and xlsjs or exceljs
- 如何使用MongoDB/ Mongoose.js查询OR/ and类条件