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 (+) для строк, для более чистого кода.

Другие вопросы по тегам