我使用jQuery动态创建HTML项目。虽然项目是动态创建的,但它们的属性是注释。我的意思是,如果我在class
调用中分配id
和$()
,则会创建没有这些属性的元素。甚至我的浏览器也显示空属性。当我尝试根据第一个下拉选项填充下拉列表时,会发现问题。
for (var i = 1; i <= prescriptionnum; ++i) {
$("<select/>", {
class: 'selectdoctor',
name: 'selectdoctor' + i,
id: 'selectdoctor' + i
}).appendTo("#prescriptiondiv").after("<br/>");
$("<input/>", {
type: "text",
class: "textinput",
name: "textinput" + i,
id: "textinput" + i
}).appendTo("#prescriptiondiv").after("<br/><input type='file' id='imageinput'"+ i +" class='imageinput' /><br/><br/>");
}
如果class selectdoctor
使用HTML创建相同的下拉列表,它的工作和浏览器也会显示属性,但不会显示jQuery创建的属性。
答案 0 :(得分:1)
<select>
似乎很好,但你的<input type="file">
元素引用了问题,你应该使用这个:
"<br/><input type='file' id='imageinput" + i + "' class='imageinput' /><br/><br/>"
而不是:
"<br/><input type='file' id='imageinput'"+ i +" class='imageinput' /><br/><br/>"
演示:http://jsfiddle.net/ambiguous/nUmNe/1/
至于没有得到任何属性,我猜你正在使用旧版本的jQuery,比1.4更早的版本。考虑使用jQuery 1.3.2的这个小提琴版本:
这似乎与您所看到的完全匹配。另外,来自fine manual:
jQuery(html,props)版本添加:1.4
html 定义单个独立HTML元素的字符串(例如或) props 要在新创建的元素上调用的属性,事件和方法的映射。
因此,在1.4版之前,您所使用的$()
来电的格式尚未添加。