原生js代码挑战之动态添加双色球
var ballArr = []; //存放已有的红球,用来排除重复和排序
window.onload = function(){
var btn = document.createElement("button");
btn.innerHTML = "按键开始传球!";
btn.onclick = turnRunGo;
document.getElementsByTagName("body")[0].appendChild(btn);
}
//当有重复数字时循环直到长度达到6
function turnRunGo(){
for(let i = 0;;i++){
if(ballArr.length < 6){
generateRandom();
}else{
sortArr();
break; //for循环结束
}
}
}
// 生成随机数
function generateRandom(){
var random = Math.ceil(Math.random()*33);
for(let i = 0 ; i < ballArr.length; i++){
if(ballArr[i] == random){
return false; //有重复时不执行放入
}
}
ballArr.push(random);
}
//由小到大排序
function sortArr(){
for(let i = 0;i < ballArr.length;i++){
for(let n = 0;n < i + 1;n++){
if(ballArr[n] > ballArr[i]){
var sec = ballArr[n];
ballArr[n] = ballArr[i];
ballArr[i] = sec;
}
}
}
pushArr();
}
//将随机数排序后放入html中
function pushArr(){
var div = document.createElement("div");
for(let i = 0;i < ballArr.length;i++){
var ball = document.createElement("span");
ball.style.display = "inline-block";
ball.style.width ="30px";
ball.style.height = "30px";
ball.style.color = "white";
ball.style.textAlign = "center";
ball.style.borderRadius = "20px";
ball.style.background = "red";
ball.innerHTML = ballArr[i];
div.appendChild(ball);
}
//放入蓝球
var ball = document.createElement("span");
ball.style.display = "inline-block";
ball.style.width ="30px";
ball.style.height = "30px";
ball.style.color = "white";
ball.style.textAlign = "center";
ball.style.borderRadius = "20px";
ball.style.background = "blue";
ball.innerHTML = Math.ceil(Math.random()*16);
div.appendChild(ball);
document.getElementsByTagName("body")[0].appendChild(div);
}
原生js代码挑战之动态添加双色球的更多相关文章
- 初探原生js根据json数据动态创建table
初探原生js根据json数据动态创建table 小生以实习生的职位进入了一家非纯软件的公司做asp.net开发,大半个月下来发现公司里居然没有前端工程师,这令我很诧异,跟着公司做项目,发现前端后台没有 ...
- js活jQuery实现动态添加、移除css/js文件
下面是在项目中用到的,直接封装好的函数,拿去在js中直接调用就可以实现css.js文件的动态引入与删除.代码如下 动态加载,移除,替换css/js文件 // 动态添加css文件 function ad ...
- js获取不到动态添加的标签的值的解决方法
遇到了js无法获得动态添加的标签的值,百度了一番,最后自己解决了问题,但是原理现在还不怎么明确. $("input[id='txtAttValue']").each(functio ...
- 【Unity】用代码给按钮动态添加点击事件
问题:多数情况下用UGUI的Button控件身上的OnClick()列表可以指明该按钮点击后触发的回调.现在想要调用自定义脚本里的方法,当这个脚本挂在Button所属的Canvas身上时,传入Canv ...
- 奇舞js笔记——第0课——如何写好原生js代码
摘要 1.好的代码职责要清晰,javscript不要用来操作样式: 2.API要设计的合理:通用性,适度的抽象(数据抽象,过程抽象),可扩展性: 3.效率问题:用好的.合适的算法(前端程序员要把自己当 ...
- 在js或jquery中动态添加js脚本【转】
起因: 我们在用js动态写入script时,会导致</script>后面的所有语句都变为普通文本,导致html展示无效, 所以我们需要规避</script>问题. 解决方案一( ...
- js为Object对象动态添加属性和值 eval c.k c[k]
const appendInfo = () => { const API_SECRET_KEY = 'https://github.com/dyq086/wepy-mall/tree/maste ...
- vue.js 利用SocketCluster实现动态添加数据及排序
直接上代码 html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- 使用JS实现页面中动态添加文件上传输入项
1. 编写JSP <%@ page language="java" import="java.util.*" pageEncoding="UTF ...
随机推荐
- 客户端(winform)更新
winform更新有两种情况,一种是在线更新在线使用:直接右击项目发布出去就可以更新在线使用了.还有一种更新是不用一直连接网络的模式. 1:C#Winform程序如何发布并自动升级--------ht ...
- 【Nginx系列】Nginx虚拟主机的配置核日志管理
Nginx配置段 #user nobody; worker_processes 1;// 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数 #error_lo ...
- 【备忘】Idea的那些事
说到Java的IDE,似乎eclipse和Idea是目前的主流.然而,OO的课程组却一直在推荐使用eclipse,于是很多人就这样错过了Idea这样强大的IDE工具.本文将会对于Idea和Idea的一 ...
- 读论文系列:Object Detection CVPR2016 YOLO
CVPR2016: You Only Look Once:Unified, Real-Time Object Detection 转载请注明作者:梦里茶 YOLO,You Only Look Once ...
- beta冲刺7
前言:最后一篇惹.明天就是正式交差了.有点慌-- 昨天的未完成: 用户试用+测评 输入部分的正则式判定 今天的工作: 登陆界面修改 我的社团显示效果优化 部分信息注册后锁定无法修改 其他部分功能优化 ...
- Beta第三天
听说
- logging日志
import logging logging.basicConfig(filename='log.log', format='%(asctime)s - %(name)s - %(levelname) ...
- Java 多线程 从无到有
个人总结:望对屏幕对面的您有所帮助 一. 线程概述 进程: 有独立的内存控件和系统资源 应用程序的执行实例 启动当前电脑任务管理器:taskmgr 进程是程序(任务)的执行过程,它持有资源(共享内存, ...
- xShell终端下中文乱码问题
今天,可能是因为不小心中途打断了xShell更新,结果打开xShell发现里面的中文全成了乱码.于是去网上查了一下原因. 更新xshell(xshell5)以及其他终端中文乱码的原因无非有三种 (1 ...
- Connect Appium Server Fail.A new session could not be created
1.由于安卓测试机性能低下,并不能支持测试工作,想安装一个模拟器帮助测试,然后发现群里有朋友发了一个夜神模拟器..下载..安装..美滋滋的准备运行脚本.What..居然报错了..orz..然后百度查找 ...