javascript
  • html
  • quotation-marks
  • 2013-08-07 3 views 0 likes 
    0

    В моем коде JavaScript У меня есть следующие строки:Как правильно использовать кавычки в JavaScript?

    document.write("</form><button style='margin-top:100px; width:150px; position:absolute; left:50%; margin-left:-75px' type='button' onclick='Proceed('test')'>Se resultat</button>"); 
    

    стиль и тип недвижимости работают нормально, но когда я пытаюсь передать параметр в функцию JavaScript Приступить он не работает. Я также пробовал (\'test\')

    Как решить эту проблему?

    Edit: полный HTML скрипт

    <!DOCTYPE html> 
    <html> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
        <title>Title here.</title> 
        <script> 
         function Proceed(var test) 
         { 
          alert(test); 
         } 
        </script> 
    </head> 
    <body style="font-family:Palatino"> 
        <img src="logo.png"/> 
        <hr/> 
        <h1 style="text-align:center">Description here.</h1>   
    
        <script> 
    
         if (window.XMLHttpRequest) 
         { 
          request=new XMLHttpRequest(); 
         } 
         else 
         { 
          request=new ActiveXObject("Microsoft.XMLHTTP"); 
         } 
         request.open("GET","data.xml",false); 
         var XMLdocument; 
         request.onreadystatechange=function() 
         { 
          if (request.readyState==4) 
          { 
           XMLdocument = request.responseXML; 
          } 
         }; 
         request.send(); 
         var questions = XMLdocument.getElementsByTagName("question"); 
         for(i = 0; i < questions.length; i++) 
         { 
          var x = questions[i]; 
          var questionvalue = x.getElementsByTagName("questionvalue"); 
          document.write("<p style='margin-top:50px; font-size:20px; font-weight:bold; text-align:center'>" + questionvalue[0].childNodes[0].nodeValue + "</p>"); 
          var answers = XMLdocument.getElementsByTagName("answer"); 
          document.write("<form>"); 
          for(n = 0; n < answers.length; n++) 
          { 
           y = answers[n]; 
           var answervalue = y.getElementsByTagName("answervalue"); 
           document.write("<input style='margin-left:43%; margin-right:20px;' type='radio' name='" + questionvalue[0].childNodes[0].nodeValue + "' value='" + answervalue[0].childNodes[0].nodeValue + "'>" + answervalue[0].childNodes[0].nodeValue + "<br/>"); 
          } 
          document.write("</form><button style='margin-top:100px; width:150px; position:absolute; left:50%; margin-left:-75px' type='button' onclick='Proceed(\"test\")'>Se resultat</button>"); 
         } 
        </script> 
    </body> 
        </html> 
    
    +1

    Создание этих элементов "вручную" вместо того, чтобы с помощью 'document.write () 'будет облегчать эту проблему. Нынешний консенсус заключается в том, чтобы избежать 'document.write()' в первую очередь. –

    +0

    Возможный дубликат [Как писать кавычки в JavaScript] (http://stackoverflow.com/questions/5662108/how-to-write-quotation-marks-in-javascript) –

    ответ

    2

    Это не работает, потому что это недопустимый HTML:

    document.write("</form><button ... onclick='Proceed('test')'>...</button>"); 
    

    запишется:

    </form><button ... onclick='Proceed('test')'>...</button> 
    

    Когда оно написано на DOM, стиль цитирования onclick диктует, где он заканчивается, в основном делая значение onclickProceed(. Вы должны изменить свои символы цитирования:

    document.write("</form><button ... onclick=\"Proceed('test')\">...</button>"); 
    

    или:

    document.write("</form><button ... onclick='Proceed(\"test\")'>...</button>"); 
    

    Edit: Смотрите this plunkr для простого примера

    +0

    Изменение «на» и удаление ключевое слово «var» в функции «Приступить» заставило его работать. Спасибо! :) – Robin

    1

    Изменение их уцелевших двойные кавычки должны работать для вас.

    document.write("</form><button style='margin-top:100px; width:150px; position:absolute; left:50%; margin-left:-75px' type='button' onclick='Proceed(\"test\")'>Se resultat</button>"); 
    
    1

    Вы можете изменить одиночные кавычки, чтобы сбежавших двойные кавычки:

    onclick='Proceed(\"test\")' 
    
    Смежные вопросы