当我加载没有以下 js 代码的页面时,它运行得很好,但是当我使用 DOM 创建 html 元素时,它会如何使用相同的页面 url 发出服务器请求,
const isHideVariants = document.querySelector("#hidevariants"); const vehiclesList = document.querySelector(".brand-vehicles-list"); let vehicles = <%- JSON.stringify(vehicles) %>; displayVehicles(); function displayVehicles() { clearVehicles(); vehicles.forEach((vehicle) => { const anchorTag = document.createElement("a"); const img = document.createElement("img"); const p = document.createElement("p"); anchorTag.href = `/vehicles/${vehicle._id}`; anchorTag.classList.add("brand-vehicle"); img.src = vehicle.thumbnail; img.alt = "vehicle thumbnail"; p.textContent = vehicle.name; anchorTag.appendChild(img); anchorTag.appendChild(p); vehiclesList.appendChild(anchorTag); }); } function clearVehicles() { while (vehiclesList.firstChild) { vehiclesList.removeChild(vehiclesList.firstChild); } }
当我注释 js DOM 代码时,我测试了代码,然后它没有发出任何其他服务器请求
这是第一个请求
GET /brands/dodge 200 2109.074 ms - 16952
这是我创建 html DOM 元素时触发的第二个请求
GET /brands/undefined 200 8297.877 ms - 16781
此 GET 请求是由
标记的
src
属性发送的。并且src
的值为undefined
。这意味着您的代码中的vehicle.thumbnail
是未定义
。查看img标签的src属性是如何执行的?