javascript - 使用 jquery 动态生成的 URL 部分重复

标签 javascript jquery url

我正在尝试在查询中动态生成新闻项列表。该新闻是从 .json 文件中读取的,并相应地生成 html 代码。 由于它是一个双语网站(IT-EN),我将所有页面(主页除外)分为两个子文件夹,分别称为 it 和 en。 通过将插入的语言识别为页面标签中的 lang 属性,并添加 json 中的数字索引建议的“news #”,动态生成新闻页面的链接。 当我转到新闻页面时,我使用 window.location.toString (). Split ('#')拆分 url,然后选择 # 后面的那个。 我设法动态生成所有内容,并且可以正常工作 99%,但链接有重复的语言: 而不是/en/news# Ø/it/news# ottengo /it/it/news# 。 我省略了扩展名,因为它是由 .htaccess 自动插入的

我尝试通过直接编写所有内容来消除包含链接和语言的变量,但没有帮助。

function genera_elencoNews (objDati){   
    let lingua = $('html')[0].lang.toLowerCase();
    let articolo = objDati.articoli;
        articolo = articolo.reverse();

    let article         = '';
    let link_img        = '';
    let link            = '';
    let foto            = '';
    let data_articolo   = '';
    let titolo          = '';
    let contenuto       = '';

    for (let i = 0; i < Object.keys(objDati.articoli).length; i++){
        article         = $('<article>').attr('class', 'box excerpt');


        link_img        = $('<a>').attr('class', 'image left').attr('href', lingua + '/news#' + articolo[i].newsId); 
        link            = $('<a>').attr('href', lingua + '/news#' + articolo[i].newsId);
        foto            = $('<img>').attr('class', 'Miniatura').attr('src', '/img/news/'+ articolo[i].foto);
        data_articolo   = $('<span>').attr('class', 'date').html(articolo[i].data);
        titolo          = articolo[i].titolo;
        contenuto       = $('<p>').html(articolo[i].contenuto.substring (0, 200) + '...');

        $(article)//Genitore. tutto il resto è inserito dentro <article>        
            .prepend(link_img.append(foto))// Inserisce link e dentro mette la foto <article> --> <a> --><img>
                .append($('<div>') //<article> --> <div>            
                    .append($('<header>')// <article> --> <div> --> <header>
                        .append(data_articolo)//<article> ---> <div> ---><header> ---><span>DATA
                            .append($('<h3>')
                                .append(link.html(titolo)))) 
                    .append(contenuto))         
            .appendTo('#ultimeNews');
    }
}

最佳答案

我设法解决了该问题,但我决定不删除该问题,以防它对其他人有用。

link = $('<a>').attr('href', lingua + '/news#' + articolo[i].newsId);

问题在于构建链接。它在家里工作,因为它位于根目录中,因此路径变成 example.com/it/news# 。 在新闻存档页面上,由于它位于 example.com/it,生成的链接是 example.com/it/it/news# .

现在,解决后,我明白解决方案很简单但并不简单,特别是对于那些没有太多经验的人:从根开始链接的路径:而不是 it/news#使用/it/news#

然后我通过添加斜杠 (/) 修改了该代码行: link = $('<a>').attr('href', '/' + lingua + '/news#' + articolo[i].newsId);

关于javascript - 使用 jquery 动态生成的 URL 部分重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60710145/

相关文章:

javascript - Meteor升级问题: forgotPwd route configured but showForgotPasswordLink set to false

c# - 类型 null 不可分配给类型 IJobDetails(这是我的接口(interface))

php - 保存到数据库的 jQuery Portlet

jquery - 尽管包含所有 js 和 css 源文件,但 Bootstrap 导航栏不会扩展

java - 使用 Struts2 taglib 通过 URL 将参数传递给操作

ruby-on-rails - 在 Rails 中检测外部 url 的最佳方法是什么?

javascript - EmberJS 从 ember-simple-auth 验证器检索当前用户

javascript - 仅在屏幕上显示 DIV

javascript - 如何让 JavaScript 找到焦点输入的值,如果是默认值则清除,如果是新数据则保留?

javascript - 使用 javascript 拦截传入的 URL