Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何替换DOM元素中的元素列表_Javascript_Html_Dom - Fatal编程技术网

Javascript 如何替换DOM元素中的元素列表

Javascript 如何替换DOM元素中的元素列表,javascript,html,dom,Javascript,Html,Dom,我需要解析在WYSIWYG编辑器中创建的一些HTML内容,我在变量content中有HTML字符串,但是我需要获取这个HTML字符串中的所有img标记,用一些逻辑(函数)更改它们的src,并用新标记替换旧的img标记 下面是负责逻辑第一部分的代码: let element = document.createElement( 'html' ); element.innerHTML = content 现在,element是一个伪HTML DOM,它包含我在content中

我需要解析在WYSIWYG编辑器中创建的一些HTML内容,我在变量
content
中有HTML字符串,但是我需要获取这个HTML字符串中的所有
img
标记,用一些逻辑(函数)更改它们的src,并用新标记替换旧的img标记

下面是负责逻辑第一部分的代码:

      let element = document.createElement( 'html' );
      element.innerHTML = content
现在,
element
是一个伪HTML DOM,它包含我在
content
中解析的HTML字符串。 现在,我正在获取图像列表并在其中循环,更改
src
属性

      let img_list = element.getElementsByTagName( 'img' ); 
      for (var i = 0; i < img_list.length; i++) {
        some_src = someFunction()
        img_list[i].setAttribute("src",some_src)
      }
让img_list=element.getElementsByTagName('img');
对于(变量i=0;i

现在,
img\u列表中的图像更新为新的源代码,我需要用新图像替换内容中的旧img,我该怎么做?(我无法将ID添加到
content
)中的图像中。

下面是一个如何操作html字符串并获取html字符串的示例。希望这能对你有所帮助

const modContent=(content)=>{
//创建一个HTMLDOM元素
const virtualHtml=document.createElement('div');
//将内容传递给HTMLDOM元素
//html将被自动解释
virtualHtml.innerHTML=内容;
//查找所有图像
const images=virtualHtml.queryselectoral('img');
/*启动修改*/
//循环浏览所有图像
images.forEach((图像,索引)=>{
//更新图像路径
image.src=`newurl/${index+1}.jpg`;
});
/*端部修改*/
//return innerHTML将自动转换为字符串
返回virtualHtml.innerHTML;
}
让内容=`
`;
console.log('old content->',content);
//修改内容
content=modContent(content);

console.log('newcontent->',content)那里没有魔法,这应该已经起作用了,为什么图像src不应该更新?您的内容是最新的,您可以使用element.innerHTML来读取,修改后请尝试
console.log(element.innerHTML)
。@AminZoubaa确实,我不知道它为什么不起作用,好像我在原始代码中遗漏了什么,谢谢您指出!我发现,您正在创建一个
html
dom元素,而不是div或类似的东西。这将生成一个全新的html树,其中包含html->head/body。这并不理想。相反,如果您想使用
div
元素,请签出我的答案。这对你来说应该是现成的。