【问题标题】:Change text of headline when cloning element克隆元素时更改标题的文本
【发布时间】:2013-12-16 11:15:18
【问题描述】:

我正在克隆表单的一部分并遇到了几个绊脚石。我能够克隆表单并更新每个表单元素的 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();
}

我似乎无法更新 的文本。我需要添加与每个表单元素相同的数字。所以第一个克隆会说“Observation - 1”。同时使用 .text 和 .html 并得到“Uncaught TypeError: Object # has no method 'text'”

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

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

其他人每次都失败。

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

【问题讨论】:

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


    【解决方案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 );
    

    【讨论】:

    • 太棒了,解决了标题问题。有没有办法从 1 而不是 0 开始计数?另外,您对更改 ID 和元素名称有任何见解吗?
    • @DirtyBirdDesign 计数从 1 开始是什么意思。你能举个例子。你的意思是第一个。你可以这样做var len = $('.observation').length + 1; 所以如果最初没有元素,它会给你第一个元素 1 而不是 0
    • 是的,就是这样。刚刚添加了+2,它按我的意愿工作。再次感谢。
    • 仍在处理第二部分,修改 name 和 id 属性。当我开始工作时将标记为正确。
    • @DirtyBirdDesign [0] 为您提供 DOM 元素,但 attr 在 jquery 对象上。所以你需要做:eq(0) 但实际上在你的情况下你不需要这样做,因为从 remplate 克隆只有一个这样的元素,所以你也可以直接在 jq 对象上做.attr
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多