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 相关文章推荐
window.js 主要包含了页面的一些操作
Dec 23 Javascript
jquery 学习之二 属性 文本与值(text,val)
Nov 25 Javascript
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
获取body标签的两种方法
Oct 13 Javascript
Javascript基础知识(三)BOM,DOM总结
Sep 29 Javascript
jQuery检测输入的字符串包含的中英文的数量
Apr 17 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
Javascript中this关键字指向问题的测试与详解
Aug 11 Javascript
详解使用webpack构建多页面应用
Dec 21 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
Oct 31 Javascript
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
详解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简单封装了一些常用JS操作
2007/02/25 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
php实现Mysql简易操作类
2015/10/11 PHP
golang与PHP输出excel示例
2016/07/22 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
初学JavaScript第二章
2008/09/30 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
浅析vue数据绑定
2017/01/17 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
python遍历类中所有成员的方法
2015/03/18 Python
Django如何配置mysql数据库
2018/05/04 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
英语国培研修感言
2014/02/13 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
公益广告标语
2014/06/19 职场文书
夏季药店促销方案
2014/08/22 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
中层干部考核评语
2015/01/04 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书