我克隆了一个表格的一部分并击中了几个绊脚石。我能够克隆表单并更新每个表单元素的name属性,并有2个问题。 这是我的代码:
function newObservation() {
var len = $('.observation').length;
var $html = $('.observationTemplate').clone();
$html.find($('.observationTitle')[0].text("Observation -" + len));
$html.find('[name=audit-observation-category]')[0].name="audit-observation-category" + len;
$html.find('[name=audit-observation-notes]')[0].name="audit-observation-notes" + len;
$html.find('[name=audit-observation-recommendation]')[0].name="audit-observation-recommendation" + len;
$html.find('[name=audit-observation-severity]')[0].name="audit-observation-severity" + len;
$html.find('[name=audit-observation-person]')[0].name="audit-observation-person" + len;
$html.find('[name=audit-observation-date]')[0].name="audit-observation-date" + len;
return $html.html();
}
我似乎无法更新文字。我需要为每个表单元素添加相同的数字。所以第一个克隆会说“观察 - 1”。使用.text和.html并获取“未捕获的TypeError:对象#没有方法'文本'”
我也无法获得更新elemen'ts ID的语法权限。
$html.find('[name=audit-observation-category]')[0].{name="audit-observation-category" + len.id="audit-observation-category" + len};
其他人每次都失败。
任何adive都非常感谢!感谢。
答案 0 :(得分:1)
尝试eq(0)
而不是[0]
,它返回DOM元素,而不是带有text
方法的jquery对象:
$('.observationTitle:eq(0)').text("Observation -" + len);
如果你想设置你可以做的元素的id:
var name = "audit-observation-category" + len;
$html.find('[name=audit-observation-category]').attr({name:name, id:name );