同一按钮上的连续onclick事件触发单独的脚本
Consecutive onclick events on same button triggering separate scripts
我正在学习javascript,并开始使用脚本修改DOM。
我有一个小的html文件,用户按下一个按钮,html就会改变状态。我遇到的问题是,在主onclick事件之后,使用相同的按钮将页面重置为原始状态,即编辑DOM以返回其原始标记。
这是我的文件(我知道它很简单,但它会帮助我):
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>My First JavaScript</title>
<style type="text/css">
h3#norm {
font-size: 1.5em;
color: #000;
}
h3 {
font-size: 2em;
color: #0059D7;
}
</style>
</head>
<body>
<!--creating a wrapper to contain and layout the page-->
<div id="wrapper">
<h3 id="norm">Are you new here?</h3>
<!--button for running script-->
<input class="button" type="button" id="button" name="button" value="Yes">
<!--begin javascript to edit html in above line-->
<script type="text/javascript">
<!--
//when button is clicked script edits html
document.getElementById('button').onclick = function () {
document.getElementById('norm').innerHTML="<h3>Welcome!!!</h3>";
};
document.getElementById('button').onclick
//-->
</script>
</div>
</body>
</html>
编辑将丢失的CSS添加到问题
1)不要将h3标记放在javascript innerHTML中,因为它是重复的。
2) 学习三元运算符。更改
document.getElementById('norm').innerHTML="<h3>Welcome!!!</h3>";
至
document.getElementById('norm').innerHTML = (document.getElementById('norm').innerHTML == "Welcome!!!") ? "Are you new here?" : "Welcome!!!";
这样就可以了。
不是最好的方法,但肯定需要最少的努力,尝试这样的方法:
document.getElementById('button').onclick = function () {
var test = document.getElementById('norm').innerHTML;
if (test == "Welcome!!!") {
document.getElementById('norm').innerHTML="Are You New Here?";
} else {
document.getElementById('norm').innerHTML= "Welcome!!!";
}
};
例如,一种更整洁的方式是
document.getElementById('button').onclick = function () {
var norm = document.getElementById('norm'),
test = "Welcome!!!";
norm.innerHTML=norm.innerHTML==test?"Are You New Here?":test;
};
相关文章:
- 在单独的模块中放入一个脚本
- 同一按钮上的连续onclick事件触发单独的脚本
- HTML可读的单独脚本标记
- 从单独的.php文件中执行<脚本>
- 谷歌应用脚本 - 将一些功能移动到单独的文件中
- 在单独的选项卡上插入两次内容脚本
- 如何删除脚本并创建单独的js文件
- 一个单独的Perl脚本可以运行一个网站的JavaScript函数吗?
- 将两个单独的元素附加到一个动画脚本
- 单独的回调函数 Java 脚本
- 我应该在模板脚本中使用参数来控制输出,还是使用单独的专用模板
- 我需要为每个模型宽度的Backbone.js创建单独的脚本文件吗
- 如何将内部HTML脚本移动到单独的Javascript
- SVG和Javascript代码是否可以保存在单独的文件中,并且仍然让脚本操作SVG元素
- 我如何才能将我的滚动脚本变成一个单独的功能
- java脚本中的多个函数单独工作,但不能在一个脚本中工作
- 是否可以在两个单独的页面上运行两个内容脚本
- 脚本在“点击”下工作事件,但不是单独的(Backbone.js)
- Firebase编辑规则授予不同客户端脚本单独的能力.没有服务器的授权)
- 我可以分割谷歌分析要求/发送到单独的脚本标签