在我的项目中,我有一个带有节点的xmlhttpresponse对象,我需要在div中打印一个元素(serps),但是需要格式化。节点是这样的:

现在我必须创建一个div,在这里存储serps信息,比如response.serps1.headline+“
"+response.serps1.url+“
"+response.serps2.headline+“
"+response.serps2.url ecc ecc,在我的代码中,我尝试过这样做:
//Data
var divSerp3 = createElement('div', 'divSerp3', 'divSerp3css');
if (typeof(response.serps) === 'undefined' || response.serps === null) {
tse3 = document.createTextNode("NO DATA");
} else {
tse3 = document.createTextNode(response.serps[1].headline+" <br>"+response.serps[1].url+"<br><br>"+response.serps[2].headline+" <br>"+response.serps[2].url+"<br><br>"+response.serps[3].headline+"<br>"+response.serps[3].url+"<br><br>"+response.serps[4].headline+"<br>"+response.serps[4].url+"<br><br>"+response.serps[5].headline+" <br>"+response.serps[5].url);
}
divSerp3.appendChild(tse3);但结果是:

如何循环整个serps节点并以格式化模式将数据插入到div中??
发布于 2013-11-20 23:13:04
与其创建文本节点,不如创建一个元素并使用innerHTML。
var divSerp3 = createElement('div', 'divSerp3', 'divSerp3css');
if (typeof(response.serps) === 'undefined' || response.serps === null) {
tse3 = document.createTextNode("NO DATA");
} else {
tse3 = document.createElement('span');
tse3.innerHTML = response.serps[1].headline+" <br>"+response.serps[1].url+"<br><br>"+response.serps[2].headline+" <br>"+response.serps[2].url+"<br><br>"+response.serps[3].headline+"<br>"+response.serps[3].url+"<br><br>"+response.serps[4].headline+"<br>"+response.serps[4].url+"<br><br>"+response.serps[5].headline+" <br>"+response.serps[5].url);
}
divSerp3.appendChild(tse3);发布于 2013-11-20 23:18:22
Html将不能在TextNode中正确呈现。正如元素的名称本身所说明的,它的内容基本上是文本的。
我建议您单独添加<br>,我不使用createTextNode()。使用适当的html元素(如span、段落等),我会根据需要追加多少个childs。如果使用的是$.html('your content')库,则用jQuery函数填充它们的内容;如果使用纯javascript,则使用element.innerHtml。
希望它有帮助;)
发布于 2013-11-20 23:07:02
您正在创建一个TextNode,它将获取所有的html并将其解析为文本。您想要document.createElement('br')并追加这些内容而不是执行+"<br><br>"
https://stackoverflow.com/questions/20108989
复制相似问题