-1
這裏是我的代碼:爲什麼.html()將當前值替換爲一切?
$('table').html('<tr><td>test</td></tr>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<img src="default.jpg" />
</table>
正如你看到的,圖像仍然存在。爲什麼?我用.html
,所以這種預期在執行此之後的結果:$('table').html('<tr><td>test</td></tr>');
<table>
<tr>
<td>test</td>
</tr>
</table>
我怎麼能這樣做?
檢查呈現的標記,你會看到的原因。 「_我該怎麼做?_」 - >使用有效的標記。 – Andreas
因爲初始DOM構建完成後圖像不在表格中。 –
,因爲這是無效的標記(img不能是表的孩子) - 瀏覽器「幫助」將圖像移動到「
回答
原因在於
img
不在表格內,因爲它不允許爲html
。<table><img ...></table>
是無效的標記;表格只能直接包含certain table-related elements,而不是img
元素。所以瀏覽器通過將img
移出表格來修復它。 (例如:瀏覽器通過移動img
只是在桌子前修復它:<img ...><table></table>
)如果它是在表擺在首位,是的,呼籲
html
替換表的內容將工作:在評論你問:
我不認爲你可以,可靠,又因爲原來的標記是無效的,因此瀏覽器可以自由地做他們想做的處理它的東西。這表示,Chrome,Firefox和IE11都似乎把IMG 面前的桌子,所以
$("selector-for-the-table").prev()
應該是img
:來源
2017-02-26 10:51:42
偉大的解決方法。謝謝。只是爲了我的信息,你能告訴我如何選擇這個圖片嗎? '
@stack:我在答案的末尾添加了一些內容。 –
IMG不是文字標籤。如果你想隱藏它,你必須刪除它。
來源
2017-02-26 10:48:34
相關問題