2012-09-07 31 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