[英]How to add html img to page from javascript but not hardcode it in javascript
我使用ajaxForm
上傳圖像。 成功上傳后,我在頁面上將上傳的圖片添加到div
:
$("#ajaxUploadForm").ajaxForm({
iframe: true,
dataType: "json",
...
success: function (result) {
$("#imageList").prepend('<img src=' + result.message + '/>');
現在,我認為將這個硬編碼的<img/>
標記放在javascript代碼中並不明智。
在prepend()函數中放置圖像但不使用img
標簽的最佳方法是什么?
我不會有任何問題...除非您擔心無效的URL可能會破壞標簽...
你可以使用簡單的JavaScript
var img = new Image();
img.src = result.message;
$("#imageList").prepend(img);
恕我直言,這是最好的方法,無需更改任何內容。 如果您不想動態地附加/分離,則可以將現有的img
作為占位符,並在需要更改它時僅更改其src
屬性:
<img id="placeholder" src="initial/path" />
$("#placeholder").attr("src", result.message);
但是由於您正在處理圖像列表,如代碼所建議,我認為您的原始解決方案更適合您的情況。 如果您決定刪除圖像或對列表進行排序,則可以使用$("imageList img")
。
編輯: OTOH如果您有一個非常復雜的結構,既要用HTML編寫代碼,又需要對其進行動態復制,則可以使用clone
作為替代:
<div id="model" style="display:none">complex markup goes here</div>
$("#model").clone().attr("id",anotherID).appendTo(target).show();
使用模板。 例如:
<div style="display:none">
<!-- This div contains all your templates -->
<img src="about:blank" class="classesYouNeed" id="uploadSuccess">
</div>
然后使用javascript:
$("#ajaxUploadForm").ajaxForm({
iframe: true,
dataType: "json",
...
success: function (result) {
var img = $('#uploadSuccess')
.clone()
.attr('id', somethingElse)
.attr('src', result.message)
$("#imageList").prepend(img);
})
})
那里有jQuery模板框架,這將使此過程變得更加容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.