在Element中添加HTML可以减少转义问题

时间:2011-11-23 23:25:54

标签: javascript

我正在尝试在元素中添加HTML,但是我在转义引号等方面遇到了严重的问题。

我尝试了很多东西,我甚至没有得到斜线,这就是它的样子:(我删除了任何逃避的尝试,因为它让它更加混乱)

document.getElementById("sharerContainer").innerHTML =
    "<div onclick='teleport('justwalk.it/house?uid=" + sharerID +
    "')'><div class='face' style='background-image: url('https://graph.facebook.com/" +
    sharerFID + "/picture');'></div>" + sharer;

还有另一种通过javascript编写HTML来减少此类问题的方法吗?

3 个答案:

答案 0 :(得分:1)

document.getElementById("sharerContainer").innerHTML =
"<div onclick=\"teleport('justwalk.it/house?uid=" + sharerID +
"');\"><div class=\"face\" style=\"background-image: url('https://graph.facebook.com/" +
sharerFID + "/picture');\"></div>" + sharer;

或者你可以试试jQuery

答案 1 :(得分:0)

然后使用DOM操作(无论如何你应该更喜欢):

var container = document.getElementById("sharerContainer");

var div = container.appendChild(document.createElement('div'));
div.onclick = function() {
    teleport("justwalk.it/house?uid=" + encodeURIComponent(sharerID));
};

var inner_div = div.appendChild(document.createElement('div'));
inner_div.style.backgroundImage = "url('https://graph.facebook.com/" + sharerFID + "/picture');";
inner_div.className = 'face';

div.appendChild(document.createTextNode(sharer));

目前尚不清楚这些变量的内容是什么,因此您可能需要稍微调整一下以使其适合您。

答案 2 :(得分:0)

为什么不能像以前那样只进行正常的DOM操作:

var sharerContainer = document.getElementById('sharerContainer');
var myDiv = document.createElement('div');
var subDiv = document.createElement('div');
subDiv.appendChild(document.createTextNode(sharer);
myDiv.appendChild(subDiv);
sharerContainer.appendChild(myDiv);

myDiv.onclick = function() {
    teleport('justwalk.it/house?uid=' + sharerID);
};