1. 程式人生 > >javascript:void(0)的含義及作用

javascript:void(0)的含義及作用

我們在 JavaScript指令碼中就會經常可以看到這樣的程式碼:
 〈a href="JavaScript:changeNum();void(0);"〉here〈/a〉
  但這兒的void(0)究竟是何含義呢?又有什麼作用呢?
  JavaScript中void是一個操作符,該操作符指定要計算一個表示式但是不返回值。
  void 操作符用法格式如下:
  1. JavaScript:void (e­xpression)
  2. JavaScript:void e­xpression
  e­xpression 是一個要計算的 JavaScript 標準的表示式。表示式外側的圓括號是可選的,但是寫上去是一個好習慣。 你可以使用 void 操作符指定超級連結。表示式會被計算但是不會在當前文件處裝入任何容。

  下面的程式碼建立了一個超級連結,當用戶點選以後不會發生任何事。當用戶點選連結時,void(0) 計算為 0,但在 JavaScript 上沒有任何效果。
  <a href="JavaScript:void(0)">單擊此處什麼也不會發生</A>
  下面的程式碼建立了一個超級連結,使用者單擊時會提交表單。
  <a href="JavaScript:void(document.form.submit())">單擊此處提交表單</A>
  使用JavaScript的時候,通常我們會通過類似:<a href=http://www.webyi.com/wschool/program/Javascript/20091231/"#" onclick="javascript:方法">提交</a> 的方式,通過一個偽連結來呼叫javascript方法。這種方法有一個問題是:雖然點選該連結的時候不會跳轉頁面,但是滾動條會往上滾,解決的辦法是返 回一個false。
如下所示:
<a href=http://www.webyi.com/wschool/program/JavaScript/20091231/"Javascript:void(0)" onclick="javascript:方法;return false;">提交</a>
<a href=http://www.webyi.com/wschool/program/JavaScript/20091231/"#this" onclick="Javascript:方法">xx</a>
            function color() {
                //把表頭設為紫色
                var th = document.getElementById("th");
                th.style.background = "violet"
                //1.得到所有<tr>元素
                var trs = document.getElementsByTagName("tr");
                var i;
                for(i = 1; i <trs.length; i++) {
                    //2.改變<tr>元素的背景顏色
                    if(i % 2 == 0) {
                        trs[i].style.background = "yellow";
                    } else {
                        trs[i].style.background = "olive";
                    }
                }
            }
            window.onload = color;
        </script>
    </head>
    <body>
        <center>
            <table>
                <tr id="th">
                    <th>姓名</th>
                    <th>科目</th>
                    <th>成績</th>
                </tr>
                <tr>
                    <td>張三</td>
                    <td>語文</td>
                    <td>90</td>
                </tr>
                <tr>
                    <td>張三</td>
                    <td>數學</td>
                    <td>87</td>
                </tr>
                <tr>
                    <td>李四</td>
                    <td>數學</td>
                    <td>68</td>
                </tr>
                <tr>
                    <td>王五</td>
                    <td>英語</td>
                    <td>76</td>
                </tr>
            </table>
        </center>
    </body>
</HTML>
<a href=http://www.webyi.com/wschool/program/JavaScript/20091231/"#" onclick="Javascript:方法;return false;">提交</a>
  #包含了一個位置資訊預設的錨點是#top 也就是網頁的上端,而JavaScript:void(0) 僅僅表示一個死連結。 這就是為什麼有的時候頁面很長瀏覽連結明明是#可是跳動到了頁首,而Javascript:void(0) 則不是如此所以呼叫指令碼的時候最好用void(0)。
   所以我們在做頁面無重新整理時用void(0)比較多,一般是Ajax,看一下Ajax的web頁面的話,一般都會看到有很多的void(0),所以在使用void(0)之前,最好先想一想這個頁面是否需要整體重新整理。

<script type="text/JavaScript" >