我正在试图弄清楚如何在div内的onclick事件上迭代一个div中的元素,而不用迭代迭代另一个div。
我之前的Javascript方法
$(document).on('click', '.ddSubmit', function() {
$("input[name*='ddText']").each(function() {
$("select[name*='ddFinal']").append('<option>'+$(this).val()+'</option>');
});
});
上一个例子中的问题是,如果我在单独的div中有输入字段,它将迭代所有div中的每个输入字段
我当前的Javascript方法:
$(document).on('click', '.ddSubmit', function() {
$(this).next('.ddP').children('.ddText').each(function() {
$("select[name*='ddFinal']").append('<option>'+$(this).val()+'</option>');
});
});
这是我提出的解决方案,但它不会附加到选择元素我是以错误的方式进行此操作,还是我缺少的东西
编辑:这是我正在研究http://jsfiddle.net/me74Z/20/
的小提琴答案 0 :(得分:0)
使用第一种方法关闭,只需使用保留的this
实例,您就可以全部设置:
$(document).on('click', '.ddSubmit', function() {
var that = this;
$("input[name*='ddText']", that).each(function() {
$("select[name*='ddFinal']", that).append('<option>'+this.value+'</option>');
});
});
答案 1 :(得分:0)
这是我在讨论了一段时间之后提出的问题的解决方案
$(this).parent().find('>p.ddP>input[name="ddText"]').each(function() {
$("select[name*='ddFinal']").append('<option>'+$(this).val()+'</option>');
});
我在调试器中浏览了父div并跟踪了输入文本元素的路径