发现了一些东西,我正在研究一下为什么一种方式有效而另一种方式无效的煽动。看起来只是一个IE7的东西,但是作为IE7,感叹,在我工作的应用程序中仍然需要一些支持。
适用于IE7的方式
var month = jQuery('<input/>');
month.attr('id', 'DOBmonth');
month.attr('title', 'Enter month');
month.attr('type', 'text');
month.attr('size', '1');
month.attr('maxlength', '2');
month.attr('class', 'numbersOnly');
month.attr('value', mm);
这种方式不起作用
var month = jQuery('<input/>', {
id: 'DOBmonth',
title: 'Enter month',
type: 'text',
size: 1,
maxlength: 2,
class: 'numbersOnly',
value: mm
});
任何人都知道为什么只有一种方式适用于IE7,但IE8 +,FF,Chrome和Safari都可以。
答案 0 :(得分:25)
答案可以在jQuery()
函数本身的API中找到。
注意:Internet Explorer不允许您创建输入或 按钮元素并更改其类型;您必须使用指定类型 例如
<input type="checkbox" />
。这可以证明 如下所示:IE中不支持:
$('<input />', { type: 'text', name: 'test' }).appendTo("body");
支持的解决方法:
$('<input type="text" />').attr({ name: 'test' }).appendTo("body");
答案 1 :(得分:3)
注意:Internet Explorer不允许您创建输入或按钮元素并更改其类型;你必须指定类型
这不起作用:
$('<input />', {
type: 'text',
name: 'test'
}).appendTo("body");
但这样做:
$('<input type="text" />').attr({
name: 'test'
}).appendTo("body");