如果不支持Javascript,我有2个Div,我想插入一个类。
所以考虑一下..一个Div有class="no-js-left"
而另一个有class="no-js-right"
检测这个的最简单的方法是什么,删除这些是JS支持不使用Modernizr的东西?
我也在使用jQuery,如果这意味着什么
答案 0 :(得分:8)
如果没有JavaScript,您的标记将保持不变。为此,您必须先将类添加到HTML中,然后使用JavaScript删除这些类。
由于您使用的是jQuery,因此可以使用.removeClass()
$('.no-js-left, .no-js-right').removeClass('.no-js-left .no-js-right');
答案 1 :(得分:1)
您还应该考虑使用根元素类名和不同的CSS选择器,例如:
<html class="js-disabled">
<head>
<script type="text/javascript">
document.getElementsByTagName("html")[0].className = "js-enabled";
</script>
和
.js-enabled .something { /* ... */ }
.js-disabled .something { /* ... */ }
这个解决方案比BoltClocks的答案有几个优点:
.js-disabled .something
而不是.js-disabled-something
(个人偏好)答案 2 :(得分:-1)
使用以下代码。如果浏览器支持JavaScript,则下面的代码将执行并隐藏包含类no-js-left
和no-js-right
的div。
$(document).ready(function() {
$('.no-js-left').hide();
$('.no-js-right').hide();
});
此代码只隐藏div而不是实际删除它们。
如果要从页面中删除div,请使用
$(document).ready(function() {
$('.no-js-left').remove();
$('.no-js-right').remove();
});
<强>更新强>: 如果您只想删除类,请使用
$(document).ready(function() {
$('.no-js-left').removeClass('.no-js-left');
$('.no-js-right').removeClass('.no-js-right');
});