代码
var comment = $('<div>')
.addClass('comment') // problem in IE7
.attr('id', 'comment-'+item.id)
.appendTo($('#comments-list');
问题
当程序在IE7中执行.adddClass时,收到错误消息
Object doesn't support this action
我从IE调试栏中收到此错误。
任何修复?
[更正]:
我做了进一步的调试。并发现问题不在于addClass调用。这是另一部分代码在IE7中不起作用。很抱歉浪费你们的时间。
因为我无法删除这个问题的记录,这里是错误代码(在ie7中):
$('<button>')
.attr('type', 'button') // This failed in IE7
可能是因为它不支持动态添加的“type”属性。我想我必须切换到&lt; input&gt;元素现在
$('<input')
.attr('type', 'button')
.attr('value', 'Button Text')
这只是我在IE7中测试过并且有效。我仍然更喜欢$('&lt; button&gt;')的情况,所以如果有人有任何解决方法,请在这里帮助我。
提前致谢。
答案 0 :(得分:3)
只是要详细说明这一点(主要是为了像我这样的人在谷歌上找到这个)。 我几乎遇到了同样的问题:
$('<button />')
.attr('type', 'button')
给了
对象不支持此操作
事实证明(至少对我来说),问题不是动态分配类型,而是IE显然不喜欢按钮元素上的“按钮”类型。
改变事物
$('<input />')
.attr('type', 'button')
让一切顺利。
答案 1 :(得分:1)
创建元素时需要传递有效的XML。
将其更改为:
$('<div></div>')
...
答案 2 :(得分:0)
指向发生错误的页面的链接可能会有所帮助。在我看来问题不在于.addClass()
函数......
无论如何,为什么不这样做?
var comment = $('<div class="comment" id="comment-' + item.id + '" />')
.append($('#comments-list');
另外,你不是要说.appendTo($('#comments-list'))
吗?现在,您将整个评论列表附加到新评论中。
更新:我已阅读您的修改内容。同样,如果您的代码不起作用,为什么不尝试这样的东西呢?
$('<button type="button">Button Text</button>')
我认为没有任何问题。