JS内部HTML属性中的双引号和单引号

时间:2014-01-22 19:40:20

标签: javascript php html

<!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。

2 个答案:

答案 0 :(得分:1)

您无法在number中访问php等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>

答案 1 :(得分:0)

这是因为php代码在js代码之前执行。当执行php时,它会尝试检查'+ number +'是否为1。这是一个字符串。

Php代码在服务器中执行,js代码在浏览器中执行。这是巨大的差异。