创建两个html元素并将一个元素附加到另一个元素确实失败

问题描述

我将要编写一个函数,该函数创建一个图像元素,该图像元素也被其创建的父链接元素所包围...

function makeImage(source,link) {
  let hyperlink = document.createElement("a").setAttribute("href",link);
  let newImage = document.createElement("img");

  newImage.setAttribute("src",source);
  newImage = hyperlink.appendChild(newImage);

  return newImage;
}

创建“ a”元素的过程出了点问题。每次调用makeImage时都会引发错误...

Uncaught TypeError: Cannot read property 'appendChild' of undefined

此错误与我的功能代码中的以下行有关...

newImage = hyperlink.appendChild(newImage);

任何朝着正确方向的提示都值得赞赏。

解决方法

根据MDN文档MDN setAttribute,setAttribute返回undefined

所以我提出以下解决方案:

const hyperlink = document.createElement("a");
hyperlink.setAttribute("href",link);
...
newImage = hyperlink.appendChild(newImage);
,

setAttribute在这里:

document.createElement("a").setAttribute("href",link)

Returns undefined,而不是元素。试试:

function makeImage(source,link) {
    let hyperlink = document.createElement("a");
    hyperlink.setAttribute("href",link);
    let newImage = document.createElement("IMG");
    newImage.setAttribute("src",source);
    newImage = hyperlink.appendChild(newImage);
    return newImage;
}
,

谢谢S.LT帮助我弄清楚发生了什么事。以下是最终为我工作的代码。 (还有其他答案无法解决的其他问题。)

function makeImage(source,link) {
            let hyperlink = document.createElement("a");
            hyperlink.href = link;
            let newImage = document.createElement("IMG");
            newImage.setAttribute("src",source);
            hyperlink.appendChild(newImage);
            return hyperlink;
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...