Javascript优雅地降级整个div

时间:2012-10-29 09:38:35

标签: javascript jquery html css

所以在页面上我有一个div,它是布局的一部分。 div包含JS的东西,所以虽然它是布局的一部分,但如果没有Javascript则没有任何意义。

现在我通常将其放在<head>

<style> div#target{ display:none } <style>
<script> $(document).ready(function(){ $('div#target').show(); }); </script>

但是我的老板在页面加载期间想要那个div。 所以我不得不在<body>中采用丑陋的东西:

<style> div#target{ display:none } <style>
<div id="target">stuff in div</div>
<script> $('div#target').show(); </script>

哪个是无效的xHTML,我听说有一些IE缺点,而且最重要的是它很糟糕。

我还能做什么?

1 个答案:

答案 0 :(得分:3)

保留<style>元素。

<script>作为<div>

的兄弟元素没有任何效果

你可以更有效率:

div#target{ display: none }
body.js div#target{ display: block }

<body>
<script> document.body.className += " js"; </script>

也就是说,如果一个元素仅在JS可用时才相关,那么通常使用JavaScript添加它而不是在JS不可用时试图隐藏它。