jQuery创建具有属性差异的元素

发现了一些东西,我正在研究一下为什么一种方式有效而另一种方式无效的煽动。 看起来只是一个IE7的东西,但作为IE7,叹息,仍然需要在我工作的应用程序中的一些支持。

在IE7中运行的方式

var month = jQuery(''); 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('', { id: 'DOBmonth', title: 'Enter month', type: 'text', size: 1, maxlength: 2, class: 'numbersOnly', value: mm }); 

任何人都知道为什么只有一种方式在IE7中有效,但在IE8 +,FF,Chrome和Safari中都可以。

答案可以在jQuery()函数本身的API中找到。

注意:Internet Explorer不允许您创建输入或按钮元素并更改其类型; 您必须使用指定类型。 以下是对此的演示:

IE中不支持:

 $('', { type: 'text', name: 'test' }).appendTo("body"); 

支持的解决方法:

 $('').attr({ name: 'test' }).appendTo("body"); 

根据jQuery :

注意:Internet Explorer不允许您创建输入或按钮元素并更改其类型; 你必须指定类型

这不起作用:

 $('', { type: 'text', name: 'test' }).appendTo("body"); 

但这样做:

 $('').attr({ name: 'test' }).appendTo("body");