jquery – 修改标签FOR属性

前端之家收集整理的这篇文章主要介绍了jquery – 修改标签FOR属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用jQuery函数来克隆包含一组输入元素的DIV:
<div class="history-form-fields">

<div class="row">
  <label for="History_0_type">Type</label>
  <select name="History[0][type]" id="History_0_type">
  <option value="">Select</option>
  </select>
</div>

<div class="row">
  <label for="History_0_name">Name</label>
  <input type="text" name="History[0][name]" id="History_0_name" />
</div>

<div class="row">
  <label for="History_0_year">Year</label>
  <select name="History[0][year]" id="History_0_year">
  <option value="">Select</option>
  </select>
</div>

</div>

<input id="addAnother" type="button" value="Add Another" />

当克隆此DIV时,需要修改输入元素NAME和ID标记,以便我们可以识别服务器端脚本中的数据.

我有以下代码克隆DIV并修改INPUT和SELECT标记

var counter = 0;

$('#addAnother').click(function(){
    var divCloned = $('.history-form-fields:first').clone();
    divCloned.insertAfter('.history-form-fields:last');
    initNewInputs(divCloned.children('.row'),++counter);
});

function initNewInputs(divs,idNumber)
{       
    var inputs = divs.children('input,select').get(); // find all the INPUT and SELECT tags

    for(var i in inputs)
    {
        inputs[i].id = inputs[i].id.replace(/\d+/,idNumber);
        inputs[i].name = inputs[i].name.replace(/\d+/,idNumber);
    }
}

但是我无法修改LABEL FOR属性.有人知道怎么做吗?

解决方法

由于for是Javascript关键字,因此HTML属性是由Javascript中的htmlFor属性公开的.

但是,您可以通过单个jQuery调用替换循环并避免此问题:

divs.children('label').attr('for',function(index,old) { return old.replace(/\d+/,idNumber); }
);
原文链接:https://www.f2er.com/jquery/177848.html

猜你在找的jQuery相关文章