Jquery的问题

时间:2011-09-13 05:46:27

标签: jquery html

我使用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创建的属性。

1 个答案:

答案 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的这个小提琴版本:

  

http://jsfiddle.net/ambiguous/JbEMW/

这似乎与您所看到的完全匹配。另外,来自fine manual

  

jQuery(html,props)版本添加:1.4
   html 定义单个独立HTML元素的字符串(例如或)    props 要在新创建的元素上调用的属性,事件和方法的映射。

因此,在1.4版之前,您所使用的$()来电的格式尚未添加。