我有以下标记:
<div id="contract_data">
<input type="text" id="" class="required rel_name" />
<input type="text" id="" class="required rel_phone" />
<input type="text" id="" class="required rel_address" />
</div>
<div id="invoice_data">
<input type="text" id="" class="required rel_name" />
<input type="text" id="" class="required rel_phone" />
<input type="text" id="" class="required rel_address" />
</div>
我需要以编程方式将数据从第一个div复制到第二个div。我需要检测字段目的(名称,电话等,并仅将数据复制到适当的字段)。以前我想使用“rel”属性,但我不能再这样了,所以我决定使用css类。
你能帮助我构建jquery选择器吗? 我需要使用jquery的每个函数循环第一个div,并在每个循环迭代中选择第二个div中具有相同rel_class_name属性的input元素。
编辑:
我以前的解决方案,有效(在我被迫放弃输入的“rel”属性之前):
var inputRelElms = thisstep.find("input[rel]"); // selects input with rel attr, in first div
inputElms.each(function(){
var rel = $(this).attr('rel'), val = $(this).val();
var targetElm = relElm.find("input[rel="+rel+"]"); //selects input with same rel in 2nd div
if(targetElm.val() == ''){
targetElm.val(val);
}
}
答案 0 :(得分:0)
$('#contract_data input').each(function (index) {
$('#invoice_data input:eq(' + index + ')').val(this.value);
});
<小时/> 在OP的评论
之后更新
$('#contract_data input').each(function (index) {
var cls = $(this).prop('class').match(/rel_.*\s?/g);
$('#invoice_data input.' + cls).val(this.value);
});
答案 1 :(得分:0)
尝试
$('button').click(function () {
//iterate through each input in contract
$('#contract_data input').each(function () {
//using a regex find the rel_* class name
var clazz = this.className.match(/\b(rel_.*?)\b/)[1];
//copy the value to the input element in invoice with the same class
$('#invoice_data .' + clazz).val(this.value)
})
})
演示:Fiddle
答案 2 :(得分:0)
的 JSFIDDLE DEMO 强> 的
$('#btn').click(function () {
$('#invoice_data input').each(function () {
var targetclass = '.' + this.className.split(" ").join('.');
var targetvalue = $('#contract_data ' + targetclass).val();
$('#invoice_data '+ targetclass).val(targetvalue);
});
});
答案 3 :(得分:0)
你需要遍历第一个div集合中的每个输入框,在另一个div中找到相应的类输入框并分配适当的值。
请在下面找到相同的代码:
$('#contract_data input').each(function(){
var rel_class = $(this).attr('class').split(" ")[1];
var inv_inputBox = $('#invoice_data').find('input.'+rel_class);
if(typeof inv_inputBox !== "undefined" && inv_inputBox !== null){
$(inv_inputBox).val($(this).val());
}
});