2011-06-01 63 views
1

所以我嘗試瞭如果我可以使用jquery將圖像附加到圖像上並且它可以正常工作,但圖像似乎已消失或者可見性隱藏,並且看起來沒有任何顯示。我可以將img附加到img

所以我的問題是可以這樣做,我可以使用這個圖像。它爲我正在進行的一個項目。

<img src="img/map.png" style="width: 600px; height: 400px; z-index: -100;"> 

    <img src="img/dot.png" style="position: relative; width: 20px; 
     height:34px; top: 200px; left: 200px; z-index: 100; 
     display: block; visibility: visible;"> 

</img> 

多數民衆贊成在我使用追加後,我的代碼看起來像什麼。如果你在螢火蟲看它,你看到這個孩子img看起來不顯示,所以我試圖改變可見性,但仍然不是運氣。

所以我的問題是可以做到這一點,或者我是在無法實現之後。

+2

img tags are'self closing tags:''因此您不能使用來關閉不再可關閉的內容。而是告訴我們你想達到什麼。第一張圖像是否必須消失?要麼? (在跳轉到JS/jQuery之前...在HTML上做你的作業) – 2011-06-01 22:24:23

回答

2

按照specification所述<img>元件不能有內容:

在IMG元素沒有內容;它通常被 替換爲由src屬性指定的圖像 內聯, 例外是用於左對齊或 右對齊的圖像是 「浮動」不在行。

因此試圖嵌套<img>標籤會導致未定義的行爲。

8

不要使用append,請使用after,以便第二個圖像在第一個圖像之後,而不是在第一個圖像之內。

0

這不是有效的HTML。您可以將<img>作爲兄弟附加到另一個,但不應在現有圖像中進行。

要追加後:

$(imageSelector).after('<img ... />'); // method 1 
$('<img ... />').insertAfter(imageSelector); // method 2 

或之前:

$(imageSelector).before('<img ... />'); // method 1 
$('<img ... />').insertBefore(imageSelector); // method 2 
+0

謝謝,我無法在任何地方找到答案 – ryuutatsuo 2011-06-01 22:29:55

0

這是不可能的,但不是由於其他答案中給出的原因。雖然img是一個空元素,因此不應該包含的內容,並在HTML序列化,解析器將永遠不會放置img元素中的內容,因爲你已經發現,它是一個img元素,以獲取內容可能腳本。

也可以爲img元素有內容,如果解析使用XML解析器,因爲發生,如果你使用XHTML與XML的內容類型,如支持application/xhtml + xml的

出於這些原因,在HTML5中的情況是不確定。爲the img element文中說:

IMG元素的內容,如果有的話, 針對 渲染的目的,忽略不計。

因此,正如其他答案中給出的那樣,將元素作爲兄弟元素添加是正確的分辨率。