JavaScript如何移除引号或从点击的li中提取img元素?
解决图片滑块点击弹出仅显示img元素的问题
你的核心问题是当前代码把HTML字符串当成普通文本插入,导致显示带引号的img标签代码,正确做法是直接获取并克隆li内的img元素,而非取innerHTML字符串。
修改atarashivindou函数即可解决:
function atarashivindou(){ var Atarashivindou = window.open("", "_blank", "width=1000,height=562.5"); var kakudaigazou=document.createElement("div"); kakudaigazou.classList.add("kakudaigazou"); Atarashivindou.document.body.appendChild(kakudaigazou); // 直接获取当前li下的img元素并克隆 var targetImg = this.querySelector('img'); var clonedImg = targetImg.cloneNode(true); // 将克隆的img元素添加到新窗口的容器中 kakudaigazou.appendChild(clonedImg); }
问题原因说明:
- 你之前用
koronaitemu.innerHTML得到的是HTML字符串(比如<img src="xxx.jpg">),调用append(koronimeji)时,浏览器会把这个字符串作为普通文本节点插入,所以会显示带引号的标签代码,而非渲染图片。 - 直接克隆DOM元素并通过
appendChild添加,才是符合规范的DOM操作方式,能让浏览器正常渲染图片。
额外优化建议:
- 窗口打开的参数格式有误,
width和height不需要加冒号,改成width=1000,height=562.5才能生效。 - 可以给新窗口的图片加样式,避免图片超出窗口范围:
clonedImg.style.maxWidth = '100%'; clonedImg.style.height = 'auto';
内容的提问来源于stack exchange,提问作者Winston
相关产品推荐
相关产品推荐

