2014-01-22 2 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

아무것도 Caimen

+2

가독성을 높이기 위해 코드를 들여 쓰기하는 법은 어떨까요? 바로 문제를 발견하게 될 것입니다 ... – nietonfir

+0

' '심각하게 ?? –

답변

0

js 코드보다 먼저 PHP 코드가 실행되기 때문입니다. PHP가 실행되는 동안 '+ number +'가 1이 아닌지 확인하려고합니다. 그것은 문자열입니다.

PHP 코드는 브라우저에서 서버 및 js 코드로 실행됩니다. 그것은 엄청난 차이입니다.

1

number과 같은 자바 스크립트 변수는 php에 액세스 할 수 없습니다.

당신이이 같은 JavaScript에서 그것을 할 필요가 number 사용하려면

: 내부

<!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> 
관련 문제