Използвам jquery и за двете зададени html с img таг, а по-късно извличам html с img таг и го съхранявам в хранилище на данни.
Когато първоначално задавам html, низът, който преминавам, има затварящ маркер:
h += "<div class="photo">"
+ "<img src="/images/" + msg + "" />"
+ "</div>";
$("#thumb").html(h);
Когато извличам html по-късно, той няма затварящ маркер.
Това причинява проблеми, когато се опитам да обслужвам този html на по-късна дата.
$("div.thumbnail").html()
създава HTML като този без затварящия маркер:
<div class="photo">
<img src="/images/http://lh3.ggpht.com/blah.jpg">
</div>
РЕДАКТИРАНЕ</ Силен>
Благодаря за всички предложения. В моя случай продължих да получавам „expected </img>
"грешка при опит за връщане на HTML обратно.
Затова промених подхода си и използвах този код, за да извлека img src, да възстановите html и след това да го съхраня:
var xml = "<?xml version="1.0" encoding="utf-8"?>n<content>n";
var img = $("#thumbimage").attr("src");
xml += "<thumbURL><div class="photo"><img src="/images/" + img + ""/></div>"
+ "</thumbURL>n";
Отговори:
0 за отговор № 1Какъв проблем е причиняването на това конкретно, честно казано, бих очаквал, че незатворен етикет за img ще направи ОК във всички браузъри.
.html()
без аргументи всъщност е просто обвивка за .innerHTML
, резултатите могат да варират според браузъра, но това не е проблем с jquery
0 за отговор № 2
Трябва да ни jQuery малко повече, за да го улесним.
var content = $("<div>").addClass("photo").append($("<img>").attr("src", msg));
$("#thumb").html(content);
jQuery ще изгради тези тагове за вас. http://api.jquery.com/jQuery/#jQuery2