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 相关文章推荐
js event事件的传递与冒泡处理
Dec 06 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
jQuery提交多个表单的小技巧
Jul 27 Javascript
jquery中ready()函数执行的时机和window的load事件比较
Jun 22 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
Mar 05 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
小程序开发基础之view视图容器
Aug 21 Javascript
详解webpack loader和plugin编写
Oct 12 Javascript
微信小程序官方动态自定义底部tabBar的例子
Sep 04 Javascript
VueJS实现用户管理系统
May 29 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
php 上传功能实例代码
2010/04/13 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
PHP加密技术的简单实现
2016/09/04 PHP
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
招商经理岗位职责
2013/11/16 职场文书
公证书标准格式
2014/04/10 职场文书
医院标语大全
2014/06/23 职场文书
小学家长通知书评语
2014/12/31 职场文书
小学生表扬稿范文
2015/05/05 职场文书
大学生十八大感想
2015/08/11 职场文书