js脚本编写简单刷票投票系统


Posted in Javascript onJune 27, 2017

本文实例为大家分享了js刷票投票系统的具体代码,供大家参考,具体内容如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

<head>
<title>投票系统 & js脚本简单刷票</title>
<style type="text/css">
* {
padding: 0;
margin: 0;
}

#wrap {
margin: 0 auto;
width: 600px;
text-align: center;
}

.person {
position: relative;
margin: 20px;
float: left;
}

.person h4,
.person p,
.person button {
margin-bottom: 5px;
}

.person h4 {
color: blue;
}

.person span {
color: red;
}

.person button:hover {
cursor: pointer;
font-weight: bold;
}

.clear {
clear: both;
}
</style>

</head>

<body>

<div id="wrap">
<h3>给你的小伙伴投上一票吧</h3>
<div class="person">
<h4>one</h4>
<p>总票数: <span>0</span> 票</p>
<button>给它投票</button>
</div>
<div class="person">
<h4>two</h4>
<p>总票数: <span>0</span> 票</p>
<button>给它投票</button>
</div>
<div class="person">
<h4>three</h4>
<p>总票数: <span>0</span> 票</p>
<button>给它投票</button>
</div>
<div class="person">
<h4>four</h4>
<p>总票数: <span>0</span> 票</p>
<button>给它投票</button>
</div>
<div class="clear"></div>
</div>
</body>
<script type="text/javascript">
function getElemensByClassName(className) { // 通过class获取
var classArr = new Array();
var tags = document.getElementsByTagName("*"); //获取所有节点
console.log(tags[0].nodeType)
for(var item in tags) {
if(tags[item].nodeType == 1) {
if(tags[item].getAttribute("class") == className) {
classArr.push(tags[item]); //收集class匹配的节点
}
}
}
return classArr;
}

function delete_FF(element) { // 在FireFox中删除子节点为空的元素
var childs = element.childNodes;
for(var i = 0; i < childs.length; i++) {
var pattern = /\s/; //模式匹配,内容为空
if(childs[i].nodeName == "#text" && pattern.test(childs[i].nodeValue)) { //处理
//alert(childs[i].nodeName);
element.removeChild(childs[i]); //删除FF中获取的空节点
}
}
}

window.onload = function() {
var persons = getElemensByClassName("person");
// alert(persons);
for(var item in persons) { //遍历所有person,为它们绑定投票事件
(function(_item) { //匿名函数传入item, 防止因作用域问题导致item总为最后一个
delete_FF(persons[_item]); //出去FF中空行代表的子节点
persons[_item].setAttribute("id", "person" + (parseInt(_item) + 1)); //赋上id

var childs = persons[_item].childNodes;
for(var i = 0; i < childs.length; i++) {
//alert(childs[i].nodeName);
if(childs[i].nodeName == "BUTTON") { //点击按钮投票
var oButton = childs[i];
}
if(childs[i].nodeName == "P") { //投票结果更新
var oP = childs[i];
var oSpan = oP.getElementsByTagName("span")[0];
}
}
if(oButton != null) {
oButton.onclick = function() { //事件绑定
var num = oSpan.innerHTML; //获取票数
oSpan.innerHTML = (++num); //票数更新
// 这时一般我们可能就需要把这个票数num传送给服务器保存,更新时也是和服务器中的num同步
this.setAttribute("disabled", "true"); // 一般只能投票一次的吧
alert("投票成功,谢谢您的支持");
};
}
})(item); // 传入各项person
}
javascript:(function(url) {
var s = document.createElement('script');
s.src = url;
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(s);
})('http://code.jquery.com/jquery-2.1.3.js');


brushVotes(); // 刷票
$("#person3>p>span").bind('DOMNodeInserted', function(e) { //three改变则 触发
brushVotes(); //继续刷票
});

function brushVotes(){ //刷票函数
var t = setInterval(function(){
var three_num = $("#person3>p>span").text(); //three票数
var two_num = $("#person2>p>span").text(); // two票数
console.info(two_num+" "+three_num);

if(two_num - three_num < 5){ //要保持领先5票的优势
$("#person2>button").click().attr("disabled",false); //触发投票的事件click,投完后记得把投票权限拿回来
}
if(two_num - three_num == 5){ //5票领先了就此打住
clearInterval(t);
}

},2000);
}
};


</script>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
flexigrid 类似ext grid的JS表格代码
Jul 17 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
js onload事件不起作用示例分析
Oct 09 Javascript
jquery遍历数组与筛选数组的方法
Nov 05 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
Dec 23 Javascript
跟我学习javascript的call(),apply(),bind()与回调
Nov 16 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
jQuery实现元素的插入
Feb 27 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
微信小程序picker组件下拉框选择input输入框的实例
Sep 20 Javascript
vue实现nav导航栏的方法
Dec 13 Javascript
使用mixins实现elementUI表单全局验证的解决方法
Apr 02 Javascript
详解Vue.js搭建路由报错 router.map is not a function
Jun 27 #Javascript
详解vue.js的事件处理器v-on:click
Jun 27 #Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 #Javascript
Vue.js常用指令之循环使用v-for指令教程
Jun 27 #Javascript
js获取地址栏参数的两种方法
Jun 27 #Javascript
React组件之间的通信的实例代码
Jun 27 #Javascript
JS实现图片预览的两种方式
Jun 27 #Javascript
You might like
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
基于php验证码函数的使用示例
2013/05/03 PHP
php文件缓存方法总结
2016/03/16 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python unittest模块用法实例分析
2018/05/25 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
Python面试题集
2012/03/08 面试题
一封普通求职者的求职信
2013/11/20 职场文书
法律专业实习鉴定
2013/12/22 职场文书
趣味比赛活动方案
2014/02/15 职场文书
标准化管理实施方案
2014/02/25 职场文书
党员公开承诺践诺书
2014/03/25 职场文书
课内比教学心得体会
2014/09/09 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
新郎新娘致辞
2015/07/31 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
python缺失值的解决方法总结
2021/06/09 Python
浅谈Redis中的RDB快照
2021/06/29 Redis
ant design charts 获取后端接口数据展示
2022/05/25 Javascript