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 相关文章推荐
lib.utf.js
Aug 21 Javascript
jquery获取input表单值的代码
Apr 19 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
jQuery 属性选择器element[herf*='value']使用示例
Oct 20 Javascript
JS弹出窗口插件zDialog简单用法示例
Jun 12 Javascript
浅述Javascript的外部对象
Dec 07 Javascript
vue.js实现价格格式化的方法
May 23 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
javascript代码优化的8点总结
Jan 29 Javascript
解决vue多个路由共用一个页面的问题
Mar 12 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
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
jQuery事件用法详解
2016/10/06 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
JS实现的自定义map方法示例
2019/05/17 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Python延时操作实现方法示例
2018/08/14 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
python实现图片素描效果
2020/09/26 Python
欢迎横幅标语
2014/06/17 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
委托书如何写
2014/08/30 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js