克隆元素时更改标题的文本

Change text of headline when cloning element

本文关键字:标题 文本 元素      更新时间:2023-09-26

我正在克隆表单的一个部分,遇到了几个绊脚石。我能够克隆表单并更新每个表单元素的名称属性,并且有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并获得"Uncaught TypeError:Object#没有方法'text'"

我也无法获得正确的语法来更新元素的ID。

$html.find('[name=audit-observation-category]')[0].{name="audit-observation-category" + len.id="audit-observation-category" + len};

而其他人每次都会失败。

任何广告都非常感谢!谢谢

尝试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 );