2

我正在尝试将对象文字传递给 jQuery 中的 .attr() 方法以自动创建 DOM 元素。问题是当有多个属性要设置时,它会失败。

var atts = {'type':'text', 'id':'#inputBox'};
createElem('<input></input>', '#divToAppendTo', atts);


function createElem(typeOfField, fldToAppendTo, atts){
    // this works when there is only one attribute to set, but fails when there is more than 1
    jQuery(typeOfField, atts).appendTo(fldToAppendTo);
}

有任何想法吗?

4

2 回答 2

1

摆脱您的代码并改用它:

$( "<input>", {type:'text', id:'inputBox'} ).appendTo("#divAppendTo")

http://jsfiddle.net/j8cXF/

请注意,对于 jQuery 构造函数,以下所有内容都是等效的并触发document.createElement优化路径:

"<input></input>"
"<input/></input>"
"<input/>"
"<input>"
 // Plus infinite different combinations of whitespace
于 2012-06-02T13:48:54.457 回答
0

您在线程标题中提到attr()了方法,但没有使用它

尝试:

 function createElem(typeOfField, fldToAppendTo, atts){
     // this works when there is only one attribute to set, but fails when there is more than 1
     jQuery(typeOfField).attr( atts).appendTo(fldToAppendTo);
}
于 2012-06-02T13:46:26.187 回答