簡體   English   中英

HTML屬性內JS中的雙引號和單引號

[英]Double and single quotes in JS inside HTML attributes

<!DOCTYPE html>
<html>
  <body onload="test();">

  <script>
    var number=1;
    var input='<div><input type="text" <? if('+number+'==1){ ?> size="1" <? } else{        ?>      size="100" <? } ?>><div>'+
    '<div>'+number+'</div>'+ 
    '<input type="text" <? if(1==1){ ?> size="1" <? } else{ ?> size="100" <? } ?>>';

    function test(){
      var div = document.getElementById('result');
      div.innerHTML = div.innerHTML + input;
    }

  </script>
  <div id="result"></div>
  </body>
</html>

有人可以幫我處理上面的代碼嗎? 由於某種原因,我的第一個輸入框的大小為100,甚至應該為1。

您無法在php訪問JavaScript變量(例如number )。

如果要使用number ,則需要在JavaScript以下操作:

   <!DOCTYPE html>
    <html>
    <body onload="test();">
    <script>
        var number = 1;
        var input = '<div><input type="text";';
        input += number == 1 ? ' size="1" ' : ' size="100" ';
        input += '><div>';
        input += '<div>' + number + '</div>';
        input += '<input type="text" ';
        input += 1 == 1 ? ' size="1" ' : ' size="100" ';
        input += '>';

        function test() {
            var div = document.getElementById('result');
            div.innerHTML = div.innerHTML + input;
        }
    </script>
    <div id="result"></div>
    </body>
    </html>

這是因為php代碼先於js代碼執行。 在執行php時,它嘗試檢查'+ number +'是否為1,但不是。 它是一個字符串。

php代碼在服務器中執行,而js代碼在瀏覽器中執行。 那是巨大的差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM