Javascript h ref не соответствует - PullRequest
0 голосов
/ 01 июня 2018

В моем веб-приложении у меня есть различные .jspx страницы, на одной из которых я хочу динамически составить их с помощью javascript.

Я хочу создать таблицу с элементом data, каждый данныеэлемент имеет index.

Я составляю переменную с именем url , путь и идентификатор элемента:
var url = "${downloaHistodyUrl}"+data[index].id;

Моя проблемаявляется то, что url установлен правильно (я использовал предупреждение для его отладки).Но когда я нажимаю на элемент: <a href>, вместо значения переменной у меня появляется мир "url", и мой путь: "/ 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 ]

0 голосов
/ 20 июня 2018

Вам не хватает двойных кавычек в атрибуте 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>';
0 голосов
/ 20 июня 2018

Проблема в том, что вам нужно экранировать символы косой черты '/' в переменной url.В противном случае они будут иметь тот эффект, который вы испытываете, то есть они приведут к появлению одинарных кавычек в конечном выводе.

Редактировать: Если вы не поняли, я имею в виду изменение / замену слешей(/) с двойной косой чертой, как (//).Я также рекомендую вам использовать метод concat вместо использования оператора add (+) для строк, для более чистого кода.

...