Javascript h ref не соответствует
В моем веб-приложении у меня есть различные .jspx
страниц, в одном из которых я хочу составить это динамически javascript
,
Я хочу создать таблицу с data
элемент, каждый элемент данных имеет index
,
Я сочиняю переменную с именем url с путем и идентификатором элемента:var url = "${downloaHistodyUrl}"+data[index].id;
Моя проблема в том, что URL-адрес установлен правильно (я использовал предупреждение для его отладки). Но когда я нажимаю на: <a href>
У меня есть элемент "мир" вместо значения переменной, а мой путь: "/ mypath /" + url +.
КОД:
$('#modal_history_${doc.id}').on('show.bs.modal', function(e) {
$.getJSON('${historyUrl}', function(data) {
var html='<table class="table table-hover"><tr><th>Versione</th><th>Nome</th><th>PDF</th><th>Motivazione</th></tr>';
$.each(data, function(index) {
html = html+"<tr><td>"+data[index].versione+"</td>";
if(data[index].fileName != null){
var url = "${downloaHistodyUrl}"+data[index].id;
alert(url);
html = html+'<td>'+data[index].fileName+'</td><td><a href='+url+' ><span class="fa fa-download"> Download</span></a></td>';
}else{
html = html+"<td></td>";
}
if(data[index].motivazione == "" || data[index].motivazione == null){
html = html+"<td></td>";
}else{
html = html+"<td>"+data[index].motivazione+"</td>";
}
html = html+'</tr>';
});
html = html+'</table>';
$('#content_modal_history_${doc.id}').append(html);
})
});
Я не понимаю, почему.. Кто-нибудь может мне помочь?
2 ответа
Вам не хватает двойных кавычек в атрибуте href. У тебя есть <a href=myurl
в то время как это должно быть <a href="myurl"
Кроме того, дважды проверьте, что вы действительно использовали одинарные кавычки при добавлении url
в строку, а не двойные кавычки. Если бы вы сделали что-то подобное, это точно вызвало бы проблему, которую вы описываете:
html = '<a href="+url+">click me</a>'
Ваш код должен читаться так:
html = html+'<td>'+data[index].fileName+'</td><td><a href="'+url+'"><span class="fa fa-download"> Download</span></a></td>';
Проблема в том, что вам нужно экранировать символы "/" в вашей переменной url. В противном случае они будут иметь тот эффект, который вы испытываете, то есть они приведут к появлению одинарных кавычек в конечном выводе.
Редактировать: В случае, если вы не поняли, что я имею в виду, это изменение / замена слешей (/) двойными слешами вроде (//) Я также рекомендую вам использовать метод concat вместо использования оператора add (+) для строк, для более чистого кода.