JavaScript點選投票效果程式碼例項
本章節分享一段程式碼例項,它實現了簡單的投票效果功能。
當然在實際應用中,這樣的效果還是不行的,因為重新整理網頁就可以再次投票。
通常需要使用cookie或者伺服器段記錄投票狀態,不過我們們這裡只是通過這麼一段程式碼例項學習一下前端相關知識。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</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> <script type="text/javascript"> function getElemensByClassName(className){ // 通過class獲取 var classArr = new Array(); var tags = document.getElementsByTagName("*"); //獲取所有節點 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)) { //處理 element.removeChild(childs[i]); //刪除FF中獲取的空節點 } } } window.onload = function(){ var persons = getElemensByClassName("person"); 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); //票數更新 this.setAttribute("disabled","true"); // 一般只能投票一次的吧 alert("投票成功,謝謝您的支援"); }; } })(item); // 傳入各項person } }; </script> </head> <body> <div id="wrap"> <div class="person"> <h4>螞蟻部落</h4> <p>總票數:<span>0</span> 票</p> <button>給它投票</button> </div> <div class="person"> <h4>css教程</h4> <p>總票數:<span>0</span> 票</p> <button>給它投票</button> </div> <div class="person"> <h4>div教程</h4> <p>總票數:<span>0</span> 票</p> <button>給它投票</button> </div> <div class="person"> <h4>json教程</h4> <p>總票數:<span>0</span> 票</p> <button>給它投票</button> </div> <div class="clear"></div> </div> </body> </HTML>
相關文章
- JavaScript多級選項卡效果程式碼例項JavaScript
- jQuery點選滑出層效果程式碼例項jQuery
- 點選實現顯示密碼效果程式碼例項密碼
- zepto點選檢視密碼明文效果程式碼例項密碼
- 點選標題可以展開效果程式碼例項
- JavaScript日曆效果程式碼例項JavaScript
- JavaScript 點選複製選中文字程式碼例項JavaScript
- jQuery tab選項卡效果程式碼例項jQuery
- 阻止點選回車提交表單效果程式碼例項
- js點選div實現閃爍效果程式碼例項JS
- js點選文字框選中文字效果程式碼例項JS
- JavaScript留言板效果程式碼例項JavaScript
- javascript淡入淡出效果程式碼例項JavaScript
- JavaScript 動畫效果簡單例項程式碼JavaScript動畫單例
- javascript 點選回車相當於點選按鈕程式碼例項JavaScript
- 點選回車實現表單提交效果程式碼例項
- js點選按鈕數字加1效果程式碼例項JS
- javascript實現animate()動畫效果程式碼例項JavaScript動畫
- JavaScript網頁鎖屏效果程式碼例項JavaScript網頁
- javascript元素迴圈插入效果程式碼例項JavaScript
- js左右滑動選項卡效果程式碼例項JS
- jquery實現的選項卡效果例項程式碼jQuery
- canvas實現點選產生放射性效果程式碼例項Canvas
- javascript元素內容漸現效果程式碼例項JavaScript
- javascript模擬實現ArrayList效果程式碼例項JavaScript
- JavaScript簡單的日曆效果程式碼例項JavaScript
- JavaScript隨機點名程式碼例項JavaScript隨機
- select下拉選單項互換效果程式碼例項
- jQuery選項卡切換圖片效果程式碼例項jQuery
- js實現的垂直選項卡效果程式碼例項JS
- javascript刪除或者新增option選項例項程式碼JavaScript
- css進行中打點效果程式碼例項CSS
- javascript元素透明度漸變效果程式碼例項JavaScript
- javascript元素滑鼠跟隨效果程式碼例項詳解JavaScript
- javascript元素3D旋轉效果程式碼例項JavaScript3D
- javascript實現的淡入淡出效果程式碼例項JavaScript
- javascript實現的燃放煙火效果程式碼例項JavaScript
- JavaScript跟隨滑鼠指標的粒子效果程式碼例項JavaScript指標