2013-05-05 81 views
0

我嘗試在使用javascript的<img>標籤之後插入文本。如果我使用document.getElementById('candy').innerHTML = "test";圖像消失。在<img>標籤後面插入文本

你能幫我嗎?

+0

http://api.jquery.com/appendTo/ – 2013-05-05 16:33:55

+5

他沒有具體說明他想使用jQuery。 – Charlie 2013-05-05 16:35:48

+1

@Allendar OP未提及使用任何框架 – Popnoodles 2013-05-05 16:35:48

回答

5

這是因爲您正在用文本test替換innerHTML。你不追加文字。

嘗試:

var div = document.getElementById('candy'); 
div.innerHTML = div.innerHTML + 'test'; 

here服用。

+0

將此應用於OP的示例標記中,結果將爲'Insert text here!test',因此它只能工作一次,並且只有在事先沒有任何文本的情況下。 – JJJ 2013-05-05 16:41:36

+2

我認爲文本:'插入文本在這裏!'將不存在,然後JS你會知道,在那裏插入文本:) – Charlie 2013-05-05 16:42:50

1

好吧,img標籤是div內部HTML的一部分,如果你替換div的HTML,你也可以重寫img標籤。

也許你想這樣的事情,而不是:

<div><img src="candy.png" /> <span id="candy">Insert text here!</span></div> 
+0

有什麼更「正常」的,我的意思是像'lastChild'這樣的函數? – 2013-05-05 16:35:56

+0

當然,'var children = document.getElementById('candy')。childNodes; var lastChild = children [children.length - 1];'但它比命名的跨度沒有更多的「正確」。 – JJJ 2013-05-05 16:39:06

-4

那是因爲你的JavaScript改變<img>標籤內的HTML進行測試。這不起作用,因爲<img />是一個自動關閉標籤。

我相信你可以讓你jQuery做你想做的事情。