Javascript 如何仅在启用JS的情况下编写HTML代码?
可能重复:Javascript 如何仅在启用JS的情况下编写HTML代码?,javascript,dom,Javascript,Dom,可能重复: 使禁用JS时HTML代码作为备用代码变得容易。。。但是,如果我想要HTML代码,它只在启用脚本时显示,该怎么办?我可以有一个动态编写HTML的JS块,但是有没有更好的方法使用一些常规HTML来实现呢 假设我有一个链接: <a href="test.com">This should only appear if Javascript is enabed</a> 我可以有一个动态编写HTML的JS块,但是有没有更好的方法使用一些常规HTML来实现呢 不幸的
使禁用JS时HTML代码作为备用代码变得容易。。。但是,如果我想要HTML代码,它只在启用脚本时显示,该怎么办?我可以有一个动态编写HTML的JS块,但是有没有更好的方法使用一些常规HTML来实现呢
假设我有一个链接:
<a href="test.com">This should only appear if Javascript is enabed</a>
我可以有一个动态编写HTML的JS块,但是有没有更好的方法使用一些常规HTML来实现呢
不幸的是,没有。您必须使用某种形式的JavaScript
我想你可以设置一个类或者CSS隐藏的东西:
<span class="jsonly">etc</span>
使用带有
style=“display:none”
的HTML元素,从JavaScript中将其设置为display:block
示例代码(非常难看,但只是给你一个想法)
呜呜呜呜
document.getElementById('hideThisFromNonJs').style.display='block';
#测试{显示:无}
...
...
document.getElementById('test')。style.display='inline';//或者“阻塞”,或者别的什么。
我们通过给元素一个css类,将其样式设置为display:none
,并用JS显示来实现这一点。不确定这是否是您想要的,但如果给元素一个样式,请说“hasjs”
然后用一些jQuery删除它
$('.hasjs').removeClass('hasjs');
这个问题的重复:总的来说,我反对。“不过,我不能决定这在这种情况下是否合适。”弗罗格说得很有道理。在外部样式表中将
隐藏的类定义为display:none
怎么样。JS只会删除class.是的,这很好,比您或我当前(更容易实现)只涉及ID的答案更一般。不过,我确实觉得很有趣。@Pointy我引用的原因是因为我特别提到了“使用一些常规HTML”-我扩展了答案以避免混淆好的,现在你修改了答案,看起来就像其他人说的那样:-)-我没有投反对票,但现在我会投反对票,因为这是jQuery,不是Javascript。如果编辑为Javascript,它将与其他答案相同。
<div id="hideThisFromNonJs" style="display:none">
Bla bla bla
</div>
<script type="text/javascript">
document.getElementById('hideThisFromNonJs').style.display='block';
</script>
<style type="text/css" media="all">
#test { display:none }
</style>
...
<a id="test" href="test.com">...</a>
...
<script type="text/javascript">
document.getElementById('test').style.display = 'inline'; // or 'block', or whatever.
</script>
.hasjs{
display: none;
}
$('.hasjs').removeClass('hasjs');