无法将HTMLImageElement转换为字符串?

Kam*_*l T 2 javascript

我正在使用javascript来嵌入嵌套在某些中的img元素<div>.之后我想将这些图像添加到字符串变量中.

我写道:

var SomeVariable="";
$("myDivId img").each(function(){
  console.log(this);
  SomeVariable += this;
});
console.log(SomeVariable);
Run Code Online (Sandbox Code Playgroud)

console.log在使用.each功能,它显示是这样的:

<img (some elements)>,这正是我想要的.

当我最后使用console.log时,要写出整个价值,它说:

[object HTMLImageElement][object HTMLImageElement]
Run Code Online (Sandbox Code Playgroud)

我尝试使用一些转换,但我真的不知道如何实现它.

ale*_*lex 7

假设您想要HTML的字符串表示...

var html = $("myDivId img").clone().appendTo("<div />").html();
Run Code Online (Sandbox Code Playgroud)

如果您只支持具有该outerHTML属性的浏览器.

var html = $("myDivId img")
           .map(function() { return this.outerHTML; }).get().join("");
Run Code Online (Sandbox Code Playgroud)

你的原因"[object HTMLImageElement]"是因为一个ObjecttoString()给你"[object x]",这里x[[Class]]对象的(一个内部属性).

  • 我认为在你的第一个解决方案中,`.appendTo(...)`将返回`.clone()`'d元素而不是新的`div`,所以你需要`.parent()`之前` html的()`. (2认同)