javascript - 如何在 IE6 中使用带有原型(prototype)的元素添加 <table>?

标签 javascript dom prototypejs

<分区>

使用 Prototype 1.6 的“new Element(...)”,我试图创建一个同时具有 和 的

元素,但在 IE6 中没有任何反应。

var tableProto = new Element('table').update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

然后我尝试像这样注入(inject)它的副本:

$$('div.question').each(function(o) {
  Element.insert(o, { after:$(tableProto.cloneNode(true)) });
});

我目前的解决方法是创建一个

而不是
元素,然后用所有表格 HTML“更新”它。

如何成功做到这一点?

最佳答案

事实证明,我在问题中提供的示例代码没有任何问题——它在 IE6 中工作得很好。我面临的问题是我还在构造函数中错误地为

元素指定了一个类,但在我的示例中省略了它。

“真实”代码如下,但不正确:

var tableProto = new Element('table', { class:'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

这在 Firefox 中工作正常,但在 IE6 中失败,因为它错误

通过此构造函数向元素添加属性的正确方法是提供字符串,而不仅仅是属性名称。以下代码适用于两种浏览器:

var tableProto = new Element('table', { 'class':'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

由于“类”是 JavaScript 中的保留字,因此出现错误。呸!

让这成为那些不提供他们的实际代码的人的教训!

关于javascript - 如何在 IE6 中使用带有原型(prototype)的元素添加 <table>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/130843/

相关文章:

javascript - 选择数据属性为 : JavaScript 的表单

javascript - Angular 指令未在 SVG 中呈现

javascript - javascript对象和html dom之间的内存利用率

javascript - AJAX.Request POST 正文未发送

javascript - javascript中的函数链

javascript - 如何让浏览器提示用户保存服务器动态生成的文件?

javascript - 从 Firebase 获取和显示数据需要时间

javascript - 无法在 ASP.net 中显示 javascript 弹出表

javascript - 更新 : How to find event listeners on a DOM node in prototype?

javascript - 如何在 Javascript 函数中将文本附加到变量?