当尝试使用JavaScript动态添加表元素时,innerHTML在IE7, IE8和IE9中不呈现
When trying to dynamically add table elements using JavaScript via innerHTML doesn't render in IE7, IE8 and IE9
我一直在网上搜索这个,我被难住了。下面的Javascript可以在Chrome, Firefox和Safari中工作,但由于某种原因,它不能在IE 7+中工作。我所说的"不工作"是指当尝试添加表元素时,浏览器/屏幕上什么也没有显示。我用了IE内置的开发者工具,控制台的调试器上什么也没显示。
简而言之,我所要做的就是创建在第一列中有一个复选框,在第二列中有纯文本的表行。而且,整个方法是在AJAX事件之后调用的。
代码如下:
tdObjs[0].innerHTML = '<input type="checkbox" name="page" value="' + pageID + '"
onClick="fooFunction(''' + pageID + ''', this,
''_images/foo/' + pageID + '.png'', ''' + pageID
+ ''')" checked="yes">';
其中pageID
是传递给该函数的变量(在本例中,5
的int
值)。tdObjs
定义为:
var tdObjs = trObj.getElementsByTagName('TD');
, trObj
被传递给这个函数。trObj
确实出现在IE开发人员工具的local
窗口中,因为它是在另一个函数中定义的,如:
var tableObj = $('##FooTable')[0];
var trObj = document.createElement('tr');
trObj.appendChild(document.createElement('td'));
for (var i=0;i<2;i++)
trObj.appendChild(document.createElement('td'));
tableObj.appendChild(trObj);
return trObj;
任何想法?
在IE中向表中添加行时,必须将它们添加到主体中,例如
<table id="foo">
<tr>
<td>cell 0
<td>cell 1
</table>
在上面的HTML中,浏览器会在table和row元素之间添加一个tbody元素。主体是强制性的,但标签是可选的。因此,要添加行,必须这样做:
var table = document.getElementById('foo');
var tbody = table.tBodies[0];
var row = document.createElement('tr');
var cell = document.createElement('td');
// Give cell some content and add it
cell.appendChild(document.createTextNode('cell 0'));
row.appendChild(cell);
// Make another cell and add it
cell = cell.cloneNode(false);
cell.appendChild(document.createTextNode('cell 1'));
row.appendChild(cell);
tbody.appendChild(row);
克隆一行并修改单元格内容可能比创建新的行和单元格更有效。
相关文章:
- Recaptcha在IE7和IE8中不起作用
- Google地图API(IE7 IE8)的堆栈溢出
- ie7和ie8中的JQuery/Javascript问题
- IE9中的有效输出,但IE7/IE8中的未定义输出
- Onclick无法在IE8和IE7中启用只读字段
- 无法在 IE 9 中传递此运算符的值,而它在 IE7 和 IE8 中工作正常
- 在 IE7 和 IE8 中单击图像时触发的 window.blur
- 使用onsubmit函数的Javascript验证在IE8和IE7中不起作用
- Facebook 画布:IFrame 中的内容在 IE7 和 IE8 中被截断
- IE7/IE8 中的 Javascript JSON Date 解析返回 NaN
- .live() 中的 jQuery .select() 在 IE7 和 IE8 上不起作用
- ExCanvas 在 IE7 和 IE8 IFrame 中不起作用
- 谷歌图表适用于IE7,但不适用于IE8或IE9
- 获取尾随逗号(在JavaScript中)在IE7 / IE8中工作
- IE8 / IE7 / IE6似乎将通过JQuery插入的锚标记视为块级元素
- Facebook评论小部件使页面在IE7 IE8中跳到底部
- jquery设置隐藏的输入值在IE7和IE8中未按预期工作
- IE7 和 IE8 不会在提交 JavaScript 时触发 JavaScript 提交
- 如何在IE8(ie7,ie6)中固定边界半径
- 复选框& # 39;改变# 39;事件在单击标签时起作用.ie8, ie7