克隆元素时更改标题文本

时间:2013-12-16 01:12:52

标签: javascript jquery html jquery-mobile jquery-selectors

我克隆了一个表格的一部分并击中了几个绊脚石。我能够克隆表单并更新每个表单元素的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都非常感谢!感谢。

1 个答案:

答案 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 );