2016-08-10 46 views
0

このJSコードは画像を表示できませんでしたが、代わりに[object HTMLImageElement]という文字列が表示されます。
この場所に画像が表示されるように、どのように修正できますか?私は画像とtd要素の内容を交換したかったので、私は item.nextElementSibling.appendChild(sigImg); を使用しなかったおかげで画像がHTMLページに表示されていません

let signature = $('canvas.signature').get(0).toDataURL(); //earlier in the code 

let w = window.open(); 
let doc = w.document; 
doc.write(html); 
doc.close(); 
let sigImg = new Image(); 
sigImg.src = signature; 
let nodes = doc.querySelectorAll('td.Label'); 
for (var i = 0; i < nodes.length; i++) { 
    var item = nodes[i]; 
    if (item.textContent === "User's signature:") { 
    item.nextElementSibling.innerHTML = sigImg; //<--- failed to show the image 
    } 
} 

編集
理由があります。 でも、このソリューションでも小さなアイコンが表示されます。このアイコンは、右クリックして新しいページを開くと表示されます(このサイトにはアクセスできません)。

答えて

2

問題はこの

item.nextElementSibling.innerHTML = sigImg; 

である...

item.nextElementSibling.innerHTML = ''; // clear contents 
item.nextElementSibling.appendChild(sigImg); 

sigImgに変更すると、オブジェクトである、あなたは私が、あなたのコードを代わりに表示しますが、[オブジェクトのオブジェクト]を取得見つけることができます仮定してください

+0

あなたのソリューションがうまくいかなかった理由について編集を参照してください。 –

+0

ああ、あなたはnextElementSiblingの内容を置き換えたいですか? –

+0

編集@FredJを参照してください。 –

関連する問題