Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅在启用JS的情况下编写HTML代码?_Javascript_Dom - Fatal编程技术网

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');