Jquery 修改属性的标签
我正在使用jQuery函数克隆包含一组输入元素的DIV: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
<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关键字,所以HTMLfor
属性由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>