HTML5 / jQuery - 隐藏旧浏览器上的内容?

时间:2013-12-12 07:13:30

标签: javascript jquery html css html5

我的问题实际上恰恰相反,但你明白了。

我在“输入”字段上方有一个带占位符和标签的表单。 它看起来有点愚蠢,但是由于旧的浏览器不支持HTML5,其中添加了“placeholder”属性,因此需要标签。

我在想,如果有办法检查浏览器是否支持HTML5? 如果是,请隐藏标签。如果没有,请隐藏占位符(您不需要它,因为浏览器无论如何都不会检测到占位符。)

<div class="6u">
Email
<input type="email" class="text" name="email" placeholder="Email" />
</div>

我猜这可能与jQuery有关,但我真的很陌生。 这有可能吗?

4 个答案:

答案 0 :(得分:2)

您可以尝试功能检测

<div class="6u">
    <label>Email</label>
    <input type="email" class="text" name="email" placeholder="Email" />
</div>

然后

.placeholder label{
    display: none;
}

(function () {
    if ('placeholder' in document.createElement('input')) {
        var html = document.getElementsByTagName("html")[0];
        html.className = (html.className || '') + ' placeholder'
    }
})();

演示:Fiddle

答案 1 :(得分:0)

如果要在输入文本中添加id属性

<div class="6u">
Email
<input id="email" type="email" class="text" name="email" placeholder="Email" />
</div>

并使用removeAttr()函数

$("#email").removeAttr("placeholder");

答案 2 :(得分:0)

我会进行价值检查,这里描述diveintohtml5。然后,如果浏览器支持HTML5,则在body标签中添加一个类以隐藏所有标签。让浏览器完成工作,而不是JavaScript。

答案 3 :(得分:0)

您可以检查浏览器是否支持任何HTML5功能,如画布或本地存储,如下所示: - 参考http://diveintohtml5.info/detect.html

function supports_local_storage() {
  try {
    return 'localStorage' in window && window['localStorage'] !== null;
  } catch(e){
    return false;
  }
}