2012-10-16 194 views
1

我使用JavaScript來達到嵌套在一些<div> img元素。之後,我想將這些圖像添加到字符串變量。無法將HTMLImageElement轉換爲字符串?

我寫道:

var SomeVariable=""; 
$("myDivId img").each(function(){ 
    console.log(this); 
    SomeVariable += this; 
}); 
console.log(SomeVariable); 

console.log.each功能時,它顯示是這樣的:

<img (some elements)>,這正是我想要的。

當我使用console.log末,寫的全價值,它說:

[object HTMLImageElement][object HTMLImageElement] 

我試圖用一些轉換,但我真的不知道如何得到它。假設你希望自己的HTML的字符串表示

+1

你想要他們的HTML的字符串表示形式嗎? – alex

+0

是的,就是這樣。 –

+0

DOM元素不是HTML。控制檯只是*用HTML語法表示它們以用於可視目的。該元素的正確'toString()'值是'[object HTMLImageElement]'。 –

回答

6

...

var html = $("myDivId img").clone().appendTo("<div />").html(); 

如果你只支持其中有outerHTML屬性瀏覽器。

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

"[object HTMLImageElement]"的原因是因爲Object's toString()會給你"[object x]",其中x是對象的[[Class]](一個內部屬性)。

+0

我需要得到他們的html的字符串表示,但我需要在.each()函數中做到這一點。我不知道如何在.each()中使用你的建議:():( –

+0

@KamilT我不使用'each()',它使用'map()'。 – alex

+2

我想在你的第一個解決方案中,''。 appendTo(...)將返回'.clone()''d元素而不是新的'div',所以你需要'.parent()'在'.html()'之前。「 –