javascript - 用动态创建的元素替换字符串

时间:2011-02-07 11:36:23

标签: javascript

我正在尝试用动态创建的元素替换占位符。

方法

var myhtml = 'some html and stuff {IMAGE} some more html';
myhtml = myhtml.replace(/{IMAGE}/g, document.createElement('img'));
console.log(myhtml); // some html and stuff [object HTMLImageElement] some more html

我怎样才能将它替换为实际的html输出?

提前致谢!

2 个答案:

答案 0 :(得分:1)

首先应将动态创建的元素附加到空容器(可能是动态创建的DIV),然后获取该容器的innerHTML。

示例:

var myhtml = 'some html and stuff {IMAGE} some more html';
var elem = document.createElement("img");
var elemContainer = document.createElement("div");
elemContainer.appendChild(elem);
var elemHtml = elemContainer.innerHTML;
myhtml = myhtml.replace(/{IMAGE}/g, elemHtml);
console.log(myhtml);

答案 1 :(得分:0)

你可以使用这样一个丑陋的代码:

<script type="text/javascript>
  var tmp =  document.createElement("img");
  var tmp2 = document.createElement("div");
  tmp2.appendChild(tmp);
  alert(tmp2.innerHTML);
</script>