2014-01-22 187 views
0
<!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.在HTML屬性中的JS中的雙引號和單引號

+0

任何內部<?將被PHP執行,如果這是你想要做的事情,你將無法將JavaScript放入其中。 – Caimen

+2

如何正確縮進代碼以增加其可讀性?我相信你會發現正確的問題...... – nietonfir

+0

'<?如果(1 == 1){?>'嚴重?? –

回答

0

這是因爲php代碼是在js代碼之前執行的。當php執行時,它會嘗試檢查'+ number +'是否爲1。它是一個字符串。

PHP代碼在瀏覽器中的服務器和js代碼中執行。這是巨大的差異。

1

您無法訪問php中的number等JavaScript變量。

如果你想使用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>