2012-09-07 17 views
0

用于创建HTML元素并提供属性贴图的jQuery重载似乎不适用于控件。我认为IE浏览器不允许你,所以你必须指定更改类型的文档中看到的,但它似乎不顾一切的属性映射在IE和Chrome:对输入不起作用的jQuery(html,道具)

$("<input type='text'>", { 
    id: "foo", 
    name: "foo", 
    value: "test" 
}).appendTo("body"); 

是创建下列元素:

<input type="text" /> 

的jsfiddle证明的行为:http://jsfiddle.net/JyvBh/

回答

1

您将需要添加类型的其他属性的一部分,它会工作;像这样:

$("<input>", { 
    type: "text", 
    id: "foo", 
    name: "foo", 
    value: "test" 
}).appendTo("body");​ 

编辑:Suportted解决方法根据jQuery的文档

根据该解决方法实际使用如下不同的格式的jQuery docs

$('<input type="text" />').attr({ 
    id: 'foo', 
    name: 'foo', 
    value: 'test' 
}).appendTo("body"); 

Updated JSFiddle包括上面两种方法。

我希望这有助于!

+0

等等,文档中有一整段说IE在IE中不支持,所以我写了它来匹配他们的文档说的 - 但这在IE中似乎起作用?这很奇怪... – Dismissile

+0

@Dismissile变通办法部分显示了用于IE的不同格式 - 我已经将它包含在上面的答案中。我的猜测是,因为这是在jQuery 1.4中引入的,所以现在的工作格式不适用于以前版本的IE。 – dSquared

1

如果你这样写它的工作原理:

$("<input>", { 
    type : "text", 
    id: "foo", 
    name: "foo", 
    value: "test" 
}).appendTo("body");​ 
0

这是正确的方式

$("<input />", { 
    type:'text', 
    id: "foo", 
    name: "foo", 
    value: "test" 
}).appendTo("body");​ 

DEMO