2015-03-02 2 views
0

Я хочу передать строку как это «строка Эндрю» или «Эндрю" ами строка», которая содержит апостроф или двойные кавычки в качестве параметра в яваскрипте функции без выбрасывания исключения.Как передать строку в функции javascript?

var aString="Andrew's String"; 
var html_string="<a onclick=\"get_settings('hello',''"+aString+");\"></a>"; 
$("#myDiv").html(html_string); 

При запуске этого код, который я получил это исключение:

JavaScript критическая ошибка в строке 13, столбец 54 в (неизвестном источнике) \ п \ nSCRIPT1006: Ожидаемая ')'

+0

"критическая ошибка"? Все ошибки имеют решающее значение :-) –

ответ

0

Существует проблема в вашем коде:

В этой строке:

var html_string="<a onclick=\"get_settings('hello',''"+aString+");\"></a>"; 

Вы можете использовать два ' эффективно создавая это, когда анализируется:

<a onclick="getSettings('hello', ''Andrew's String);"></a> 

Это обновленная версия с правильным побега.

var aString="Andrew's String"; 
var html_string="<a onclick=\'get_settings(\"hello\",\""+aString+"\");\'></a>"; 
$("#myDiv").html(html_string); 

Лично, чтобы избежать проблем с неэкранированных строк вообще я хотел бы сделать это:

var aString = "Andrew's String"; 
var element = $("<a>Your caption here</a>").click(function(){ 
    getSettings("hello", aString); 
}); 
$("#myDiv").empty(); //empty the element; 
$("#myDiv").append(element); 
+0

Нет, теперь будет другая ошибка – epascarello

+0

@epascarello: Только когда в строке есть '' '. Или вы видите другую ошибку, которую я пропускаю? – Mouser

+0

' onclick = " get_settings ('hello', "x"); "' – epascarello

0

Простой код путем создания DIV и якорь статичным в страницу и обработать его с помощью JavaScript, чтобы передать динамический аргумент для hello и Andrew's string как параметр функции.

JS код:

$('#myAnchor').click(function() { 
        get_settings("hello", "Andrew's string"); 
       }); 

HTML код:

<div id="myDiv"> 
      <a id="myAnchor">Click</a> 
     </div> 
Смежные вопросы