如何从脚本标签内的javascript数组动态创建<a>链接?

问题描述

我正在尝试通过在脚本标签外部声明的JS数组使用href和innerHTML创建3链接。我不确定如何将数组传递到script标签并用于创建自定义元素。 这是我的JS数组


    let linkArr = [
        {
            "name": "A sample URL","url": "https://asampleurl.com"
        },{
            "name": "Another sample URL","url": "https://anothersampleurl.com"
        },{
            "name": "A final sample URL","url": "https://afinalsampleurl.com"
        }
    ]

这是我正在尝试的 '''

<script link1Name=this.links[0].name,link1Href= this.links[0].url>

    var a = document.createElement("a");
    var link1Name = document.currentScript.getAttribute('link1Name');
    var text = document.createTextNode(link1Name);
    a.appendChild(text);
    a.href = link1Href ;
    var element = document.getElementById("links");
    element.appendChild(a);
        
</script>

'''

解决方法

首先,不确定您要在这里做什么:

id

但是,那不是有效的HTML。您应该只有:<script link1Name=this.links[0].name,link1Href= this.links[0].url>

不过,要回答您的问题,如果<script> ... </script>是全局声明的,而不是在其他函数或本地范围的代码中声明的,则只要您的脚本标记位于后面,您就应该能够在文档的其他任何地方引用它。这是宣言。如果linkArr在全局声明,则将在linkArr上可用。您可以通过在浏览器的控制台中进行windowconsole.log(linkArr)来轻松地对此进行测试。

最后,假设您可以在console.log(window.linkArr)上访问该数组,则可以从该数组创建链接,

window

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...