2017-04-15 69 views
0

爲什麼這段代碼不在PHP內部工作?我想在用戶點擊具有「1」標識的圖像時彈出一個對話框。沒有彈出窗口出現onclick事件

<script> 
echo "<script type='text/javascript'> 

$id1 = document.getElementById('1'); 

$id1.onclick = function() { 
    alert('hello'); 
}; 

</script>"; 
+3

你不能在你的元素上使用一個數字作爲ID。使用像elem1或更好的東西更具描述性 –

+0

@帕特里克亨德你不對 – Dzmtrs

+0

好吧,我很驚訝,你實際上只能使用數字作爲ID。我這是一個很好的做法是另一回事 –

回答

0

function one() { 
 
\t alert('hello'); 
 
};
<a onClick="one()">Click me!</a>

0
  1. 作爲反對你的問題的第一個評論,您CAN使用一個數字作爲一個唯一的標識符:Link

的id屬性指定i ts元素的唯一標識符(ID)。

身份證可以採取何種形式沒有其他限制; 在 具體地,ID可以包括只是數字,以數字開頭, 開始以下劃線,由剛標點符號等

一個元素的唯一標識符可以被用於各種目的, 最值得注意的是作爲鏈接到使用 片段的文檔的特定部分的一種方式,作爲在腳本編寫時定位元素的一種方式,以及作爲從CSS定義特定元素的方式 。

只是試圖把一個input元素與物業id="1",然後用document.getElementById函數訪問它。有用。

但我同意這樣的標識很難閱讀,理解,甚至記住......只是「1」沒有告訴你有關元素的任何信息。我不會推薦使用這種方法。是的,最好是使用更多的「告訴」名稱,比如「按鈕進行測試」或者像這樣。

  • 的代碼不是在使用$符號是指一個可變... PHP可變PHP標籤的上下文因爲工作。所以行$id1 = document.getElementById('1');被解釋爲= document.getElementById('1');並導致JS的語法錯誤。它首先被評估爲一個php變量,因爲它沒有被定義,所以沒有什麼可以回顯,所以你想添加到頁面的js腳本沒有完成。
  • 頁面的那部分源代碼如下所示:

    <script type="text/javascript"> 
    = document.getElementById('1'); 
    .onclick = function() { 
            alert('hello'); 
           }; 
    </script> 
    

    你看,有沒有變量本身

    取而代之的是,請嘗試以下組合代碼:

    <?php 
    /* 
        If you declare a php variable, the value you assign to it becomes a JS 
        variable name and is echoed then in the script 
    */ 
    $id1 = "test"; 
    echo "<script type='text/javascript'> 
    $id1 = document.getElementById('1'); 
    $id1.onclick = function() { 
           alert('hello'); 
          }; 
    </script>" 
    
    ?> 
    

    之後,如果你看看頁面的源代碼,你會發現變量聲明現在是正確的:

    <script type="text/javascript"> 
    // Var name has appeared! 
    test = document.getElementById('1'); 
    test.onclick = function() { 
            alert('hello'); 
           }; 
    </script> 
    

    如果您在代碼中沒有犯過其他錯誤,單擊該按鈕應該會導致警報彈出。

  • 我建議聲明瓦爾如下:

    變種的varName =值;

  • 否則變量自動變爲全局變量。你選擇的方式取決於你的目標和程序架構

    +0

    非常感謝@Dzmtrs。對不起,這個愚蠢的錯誤。我是新的。我知道把id作爲數字值並不是一個好主意,但它背後有一個目的。無論如何,再次感謝你^^ – wished

    +0

    @祝你受歡迎。如果你願意,你可以投我的答覆。我想強調,使用「1」作爲ID不是導致代碼無法正常工作的根本原因 – Dzmtrs

    +0

    您是對的!我試圖給你投票,但我沒有至少15點聲望點。剛剛註冊了2天前LOL :) – wished