js点击按钮后,按钮背景颜色变成红色,再点击变成白色

haozhufeng 2011-11-17 10:01:28
各位老鸟,求帮助。一个很简单js,我想做一个按钮,它的背景颜色。点击奇数次为红色,偶数次为白色。
<script type="text/javascript" >
function change(btn) {
var btn = document.getElementsByName("button");
var times = 0;
if (btn.onclicked) {
times++;
if (times % 2 == 0) {
btn.style.background = "red";
}
if (times % 2 == 1) {
btn.style.bac1ground = "white";
}

}
}
</script>
</head>
<body>
<input type="button" value="点击试试" onclick="change(this)" />
</body>
</html>
这是我的代码,不知道哪里错了,还是怎么改。求帮助实现
...全文
14312 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
haozhufeng 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tanghuawei 的回复:]
2楼正解
[/Quote]
恩,2楼说的的确很好,多谢你哈,多谢2楼哈,呵呵
haozhufeng 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 net_lover 的回复:]
你的函数有参数,你这样再定义就覆盖了
[/Quote]
哦 ,我知道了,应该是每次又重新复制为0了,每次自增都不起作用了。需要定义一个全局变量,你看是不是?所以var times=0应该放在最上面。谢谢老鸟哈,明白了。
haozhufeng 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yfqvip 的回复:]
HTML code


<html>
<head>

<script type="text/javascript">
var times = 0;
function change(btn) {
btn.style.background = times % 2 == 0 ? 'red' : 'white';
……
[/Quote]
非常感谢老鸟,我明白你的代码意思了。简洁明了。好像知道了我错在哪了,第一次发帖,没经验。好像可以给你分,也不知道咋给,还有四楼那个也很好。不知道给你俩谁好了。哈哈
PoolBoys 2011-11-17
  • 打赏
  • 举报
回复
你这行定义的多余了[Quote=引用 8 楼 haozhufeng 的回复:]
引用 1 楼 net_lover 的回复:
var btn = document.getElementsByName("button");
这行删除

虽然我不懂你的意思,还是要感谢,第一次发帖,大家这么热心帮助。多谢各位了。
[/Quote]
haozhufeng 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 net_lover 的回复:]
var btn = document.getElementsByName("button");
这行删除
[/Quote]
虽然我不懂你的意思,还是要感谢,第一次发帖,大家这么热心帮助。多谢各位了。
PoolBoys 2011-11-17
  • 打赏
  • 举报
回复
你那times 应该放到定义函数上面,你放到函数里面每次点击都覆盖了
4楼正解
_懒猫 2011-11-17
  • 打赏
  • 举报
回复
应该可以直接循环两个动作就行吧,不用判断是奇数次还是偶数次,第一个变红色,第二个变白色,一直循环这两个动作就行了
tanghuawei 2011-11-17
  • 打赏
  • 举报
回复
2楼正解
孟子E章 2011-11-17
  • 打赏
  • 举报
回复
完整的代码
<script type="text/javascript" >
var times = 0;
function change(btn) {

if (times % 2 == 0) {
btn.style.background = "red";
}
if (times % 2 == 1) {
btn.style.background = "white";
}


times++;
}
</script>
</head>
<body>
<input type="button" value="点击试试" onclick="change(this)" />
</body>
</html>
孟子E章 2011-11-17
  • 打赏
  • 举报
回复
你的函数有参数,你这样再定义就覆盖了
满衣兄 2011-11-17
  • 打赏
  • 举报
回复

<html>
<head>

<script type="text/javascript">
var times = 0;
function change(btn) {
btn.style.background = times % 2 == 0 ? 'red' : 'white';
times++;
}
</script>

</head>
<body>
<input name="button1" type="button" value="点击试试" onclick="change(this)" />
</body>
</html>

孟子E章 2011-11-17
  • 打赏
  • 举报
回复
var btn = document.getElementsByName("button");
这行删除
agui54762 2011-11-17
  • 打赏
  • 举报
回复
首先将var times = 0;定义到函数外面

再就是,var btn = document.getElementsByName("button"); 获得的是一个数组吧
btn是个集合,若要使用,应该这样btn[0].style.background = "red";

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧