AJAX-generated & lt; tr>变成只是文本内容在firefox/chrome
AJAX-generated <tr> becomes just the text content in firefox/chrome
首先,我通过AJAX请求一些HTML。示例响应:
<tr class="recordRow">
<td class="first recordType" id="recordType">holder</td>
<td class="recordAmount" id="recordAmount">holder</td>
<td class="recordDescription" id="recordDescription">holder</td>
<td class="last recordDate" id="recordDate">holder</td>
</tr>
我正在尝试创建一个DOM对象。
var d = document.createElement("div");
d.innerHTML = templateListItem;
alert(d.innerHTML);
alert(d.firstChild);
我认为这应该添加行到<div>
,但我只得到文本。当我将响应附加到一个元素时,我只得到文本内容,例如holder holder holder holder
。
为什么HTML似乎在firefox和chrome中被压扁了?
补充道:如果示例响应如下:
<tr><td><span>something here..</span></td></tr>
它会在firefox中提示"HTMLSpanElement"。所有像tr/td/这样的标签都被删除。
如果您试图将<tr>
插入<div>
,则浏览器可能无法正确呈现此内容,因为它是非法的HTML。试着将<tr>
放到<table>
元素中,或者将<tbody>
元素嵌套在<table>
元素中。
如果您从某个服务器拖拽响应,它将只是文本,正如您所发现的那样。如果可以,您可以更改AJAX代码以返回JSON,解码并将其转换为对象。
关于标签被删除,我在某处读到浏览器这样做,但这很可能是错误的;在这种情况下,AJAX将惨败。
如果您的XHR实例是var xhr = new XMLHttpRequest()
,请确保使用xhr.responseXML
而不是xhr.responseText
。
相关文章:
- 无法在Chrome控制台中使用javascript将焦点和光标设置为输入文本
- 如何在 Chrome 的文本区域中“替换”选定的文本范围
- 可以't在Chrome扩展上返回所选文本
- window.clipboardData.getData(“文本”)在chrome中不起作用
- Chrome扩展:弹出操作网站上的文本框
- 阻止选择在IE中工作但不在Chrome中工作的文本
- 将变量传递到Chrome扩展中的徽章文本
- 如何使用chrome应用程序窗口动态调整文本区域的大小
- YUI富文本编辑器和Chrome中的同源策略
- Chrome显示错误与文本包装
- Chrome扩展程序获取DOM文本并在弹出窗口中显示.html然后单击按钮
- 在 Edge 和 Chrome 中使用标准日期选取器时,更改输入字段的文本颜色
- 在Chrome扩展程序中将文本替换为Treewalker
- 如何在文本框点击事件中设置文本框中字符的第一个位置---Chrome问题
- Chrome Javascript:自动点击包含特定文本的链接
- servlet pdf 在 chrome 中以文本形式出现
- 在 Chrome 文本输入字段中插入控制字符
- Tab分隔符在Chrome文本区域无效-Javascript
- 禁用Chrome's文本输入undo/redo (CTRL+Z / CTRL+Y)
- 错误的jquery验证和真实的验证会使chrome文本区域失去焦点