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 相关文章推荐
JavaScript设置FieldSet展开与收缩
May 15 Javascript
jquery checkbox全选、取消全选实现代码
Mar 05 Javascript
24款非常有用的 jQuery 插件分享
Apr 06 Javascript
Jquery解析Json格式数据过程代码
Oct 17 Javascript
javascript+ajax实现产品页面加载信息
Jul 09 Javascript
从0开始学Vue
Oct 27 Javascript
Javascript计算二维数组重复值示例代码
Dec 18 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 jQuery
Layui table field初始化加载时进行隐藏的方法
Sep 19 Javascript
解决layui页面按钮点击无反应,也不报错的问题
Sep 29 Javascript
移动端JS实现拖拽两种方法解析
Oct 12 Javascript
对vue生命周期的深入理解
Dec 03 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
jquery $.ajax入门应用二
2008/11/19 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
基于jquery实现的仿优酷图片轮播特效代码
2016/01/13 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
js中less常用的方法小结
2017/08/09 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python黑魔法之编码转换
2016/01/25 Python
Python网络编程详解
2017/10/31 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
函授毕业自我鉴定
2013/12/19 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
辩论赛新闻稿
2015/07/17 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
如何使用Python实现一个简易的ORM模型
2021/05/12 Python