2014-01-23 2 views
0

Благодаря таким образом система создана, что нужно сделать это как OnClick:кавычки в кавычках и функция

var name = "o'hanrahan"; 

var htmlData = '<ul class="">'; 
htmlData += '<li onclick="alert('hello ' + name)">Enter</li>'; 
htmlData += '</ul>'; 

return htmlData; 

я упростил пример. Имя изменится и может быть что угодно.

Как сделать кавычки в кавычках в js?

+0

Это была очень плохая серией из трех вопросов, которые задают вам там. Потому что вы упорно не объяснить себе первые два раза вы просто впустую время каждого. – Boann

ответ

2

Вам нужно бежать "с \, а также тонированное строка для имени должно быть внутри одиночных кавычек.

htmlData += '<li onclick="alert('hello ' + name)">Enter</li>'; 

должен быть

htmlData += '<li onclick="alert(\'hello ' + name.replace(/'/g,"\\'") + '\')">Enter</li>'; 

Теперь, если имя имеет в нем ", вы будете иметь больше проблем.

JSFiddle

Если имя имеет в нем ", вам нужно будет заменить " с &quot;

+0

Спасибо за вашу помощь – panthro

+0

Должно быть 'name.replace (/ '| \\/g," \\ $ 1 ")' – Boann

2

Вы должны избавиться от них:

var name = "o\\'hanrahan"; 

var htmlData = '<ul class="">'; 
htmlData += '<li onclick="alert(\'hello ' + name + '\')">Enter</li>'; 
htmlData += '</ul>'; 

return htmlData; 

И как вы вставляя строку с той же цитаты, который должен быть экранированы дважды

FIDDLE

А лучший способ сделать это будет

var name = "o'hanrahan"; 

var ul = document.createElement('ul'); 
var li = document.createElement('li'); 
li.addEventListener('click', function() { 
    alert(name); 
}, false); 
li.innerHTML = 'Enter' 

ul.appendChild(li) 

return ul; 

FIDDLE

Таким образом, название не имеет значения

+0

Как я могу поместить обратную косую черту в имени, если имя меняется. – panthro

Смежные вопросы