以下代码添加了上传字段的链接。对于每次新点击,它会向表单显示一个新的上传字段,最多为5个。Chrome等没有错误。
我想知道下面的行有什么问题,因为它似乎在其他浏览器上运行良好,但在IE8上它会抛出错误:Object doesn't support this action
。你能建议替代代码吗?
<div id="edit-submitted-file1-ajax-wrapper" style="display: block;">
//upload field here
</div>
<a id="addmore" href="#">[+] Add more</a>
<div id="edit-submitted-file2-ajax-wrapper" style="display: block;">
//upload field here
</div>
<div id="edit-submitted-file3-ajax-wrapper" style="display: block;">
//upload field here
</div>
等
first = $('.webform-client-form').find('div[id$="-ajax-wrapper"]').first();
first.after('<a id="addmore" href=#>[+] Add more</a>');
$('.webform-client-form').find('div[id$="-ajax-wrapper"]').each(function(){
$(this).hide();
first.show();
});
var c = 0;
$('#addmore').bind('click', function(e) {
//HERE BELOW IS THE LINE WITH ERROR
item = $('#edit-submitted-file'+ c +'-ajax-wrapper');
item.show();
++c;
if (c == 5) {
$('#addmore').hide();
return false;
}
});
答案 0 :(得分:1)
更改此
item = $('#edit-submitted-file'+ c +'-ajax-wrapper');
到这个
var item = $('#edit-submitted-file'+ c +'-ajax-wrapper');
答案 1 :(得分:0)
您之前可能在html中的某个地方使用了“item”这个词。将变量声明为var item
,问题应该解决。
请参阅Stackoverflow上的这篇早期文章:
我的猜测是,您的网页上有一些名称或ID为“item”的内容, 因此IE会成为窗口的属性(...)