【JAVASCRIPT】JS實現淘寶,百度評分功能


  類似於淘寶和百度文庫的評分功能;

  效果如圖:

    五個五角星分別放在了一個table的五列中。下面是一個<p>,用來顯示評分結果的;代碼如下:

  

<body onload="changebg()">
    <table border="0" align="center" cellpadding="0" cellspacing="0" id="maintable">
        <tr style=" font-size:30px;">
            <td></td><td></td><td></td><td></td><td></td>
        </tr>
    </table>
    <p align="center" id="result">您評了<label id="score"></label></p>

</body>

  body的onload事件綁定的是一個方法;js代碼如下:

  

 1     <script type="text/javascript">
 2         function getindex(arr,element) {        //參數:數組,元素;返回兄弟元素的索引      
 3             for (var i = 0; i < arr.length; i++) {
 4                 if (arr[i] == element) {
 5                     return i;
 6                 }
 7             }
 8             return -1;
 9         }
10 
11         function changebg() {       //為每個td設置獲得焦點屬性【也可以設置onclick屬性】
12             var maintable = document.getElementById("maintable");       //獲取需要設置的表格
13             var tds = maintable.getElementsByTagName("td");         //獲取表格下的所有單元格
14             document.getElementById("result").style.display = "none";    //設置得分結果為隱藏
15             for (var i = 0; i < tds.length; i++) {
16                 var td = tds[i];
17                 td.onfocus = getonfocus;
18                 td.style.cursor = "pointer";    //為了設置鼠標放在五角星上呈手型 19             }
20                 
21         }
22         function getonfocus(){      //設置td的焦點事件,
23             var maintable = document.getElementById("maintable");
24             var tds = maintable.getElementsByTagName("td");
25             var index = getindex(tds, this);           //返回響應事件的索引  用this代表觸發此事件的元素
26             document.getElementById("result").style.display = "";       //得到分數后把結果顯示出來
27             document.getElementById("score").innerText = index + 1;
28             for (var i = 0; i < index+1; i++) {
29                 tds[i].style.color = "red";
30             }
31             for (var i = index+1; i < tds.length; i++) {
32                 tds[i].style.color = "black";
33             }
34 
35         }
36     </script>

  js代碼主要有三個函數構成;

  ①:changebg();body的onload事件綁定的函數;為了實現對每個td元素綁定onfocus事件;

  ②:getonfocus();td元素onfocus事件的具體實現;

  ③:getindex();有兩個參數,一個是td元素的集合數組,一個是相應事件的td元素,注意使用this關鍵字。主要返回相應事件的元素的索引,為了把響應事件元素之前的顏色顯示成紅色,后面的元素顯示成黑色;

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM