javascript - 使用 jquery 根据操作系统隐藏 CSS 元素

标签 javascript jquery css show-hide

我试图简单地隐藏/显示一个元素,具体取决于您使用的是 mac、windows、iphone、ipad 等。

我有 2 个 p 元素: p1 -​​ 我想在 windows 上显示 p2 - 我想在其他所有设备上显示(mac/iphone/ipad 等)

我在这里发现了一个明显检测操作系统的脚本:http://www.stoimen.com/blog/2009/07/16/jquery-browser-and-os-detection-plugin/

所以我在链接到 jquery 之后链接到脚本,并将其添加到页面头部:

if ($.client.os == 'Mac') {
    $('#download').hide(); $('#register').show();
}

if ($.client.os == 'iPhone') {
    $('#download').hide(); $('#register').show();
}

if ($.client.os == 'Windows') {
    $('#download').show(); $('#register').hide();
}

我无法让它工作,有什么想法吗?

最佳答案

This thread对您的问题有一些解决方案。鉴于您指定的属性,您需要做的就是:

if (navigator.appVersion.indexOf("Win")!=-1) {
    $('#register').hide();
    $('#download').show();
}

您不需要显式显示元素,因为客户端不会更改操作系统。只需将 #download#register 的基本可见性设置为您的“默认”配置(将 #download { display: none; }在你的 CSS 中)并在必要时让 .hide().show() 覆盖它们。

如果您需要更高级的操作系统检测,您可以通过将 “Win” 替换为适当的操作系统标签来添加其他规则。

编辑 修复了 jsFiddle:http://jsfiddle.net/2G4pz/5/

关于javascript - 使用 jquery 根据操作系统隐藏 CSS 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750439/

相关文章:

javascript - 使用 jQuery 的随机 'email format' 文本

javascript - slick carousel 在服务器上有 1px 高度,本地环境 100%

javascript - jquery 添加跨度整数值不起作用

jquery - 我只能在移动设备上使用 jasny-boostrap 的 rowlink 吗?

javascript - 针对特定用户的 Facebook canvas iframe 调整大小问题

JavaScript:使用 onchange 使用下拉菜单过滤数据

css - 仅在小屏幕上更改 div 顺序

javascript - Angular : Adding custom script/css to partials via controller

javascript - 具有动态 ID 的 Backbone View

javascript - rails 5.1 : How to override confirmation dialog with bootstrap using rails-ujs