Jquery 修改属性的标签

Jquery 修改属性的标签,jquery,Jquery,我正在使用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</opti

我正在使用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" /> 

但是,修改属性的标签时遇到问题。有人知道怎么做吗?

因为
for
是一个Javascript关键字,所以HTML
for
属性由Javascript中的
htmlFor
属性公开

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

divs.children('label').attr('for',
    function(index, old) { return old.replace(/\d+/, idNumber); }
);

可以通过.attr()函数访问标记属性

我看到您已经有了一个可接受的javascript答案。。。但另一种处理方法是更改html。如果移动输入并选择标签内的控件,则无需修复“for”属性

<div class="history-form-fields">
    <div class="row">
        <label>
            Type
            <select name="History[0][type]" id="History_0_type">
                <option value="">Select</option>
            </select>
        </label>
    </div>
    <div class="row">
        <label>
            Name
            <input type="text" name="History[0][name]" id="History_0_name" />
        </label>
    </div>
    <div class="row">
        <label>
            Year
            <select name="History[0][year]" id="History_0_year">
                <option value="">Select</option>
            </select>
        </label>
    </div>
</div>

类型
挑选
名称
年
挑选

干杯,伙计。循环的“输入”也可以这样替换吗?@GSTAR:可以。但是,您需要两个
attr
调用。您可能需要编写
var replacer=function(index,old){return old.replace(/\d+/,idNumber);}
并传递它。Hi SLaks-还有一个问题-在修改FOR属性时,我还希望向同一标签标记添加一个“class”属性(使用attr()函数)-有没有办法将其集成到新代码中?@GSTAR:您可以在回调中编写
$(this).addClass(…)
。好主意。。。那是有效的标记吗?
<div class="history-form-fields">
    <div class="row">
        <label>
            Type
            <select name="History[0][type]" id="History_0_type">
                <option value="">Select</option>
            </select>
        </label>
    </div>
    <div class="row">
        <label>
            Name
            <input type="text" name="History[0][name]" id="History_0_name" />
        </label>
    </div>
    <div class="row">
        <label>
            Year
            <select name="History[0][year]" id="History_0_year">
                <option value="">Select</option>
            </select>
        </label>
    </div>
</div>