Javascript重置循环
我的javascript代码有点问题, 我构建了一个函数,根据用户选择的数量添加归档, 下面是函数Javascript重置循环,javascript,jquery,html,Javascript,Jquery,Html,我的javascript代码有点问题, 我构建了一个函数,根据用户选择的数量添加归档, 下面是函数 $(document).ready(function() { $('.qty').change(function(){ for (var i=0;i<$('.qty').val();i++){ $('.append').append('<select name="data[]"><option value="one">1</optio
$(document).ready(function() {
$('.qty').change(function(){
for (var i=0;i<$('.qty').val();i++){
$('.append').append('<select name="data[]"><option value="one">1</option></select>');
}
});
});
$(文档).ready(函数(){
$('.qty').change(函数(){
对于(var i=0;i尝试:
$(文档).ready(函数(){
$('.qty').change(函数(){
var html=''
对于(var i=0;i
试试:
$(文档).ready(函数(){
$('.qty').change(函数(){
var html=''
对于(var i=0;i
只需清除.append
div内容,在追加之前,您可以用清除它,因此您只需替换以下行:
$('.append').append('<select name="data[]"><option value="one">1</option></select>');
$('.append').append('1');
对于这一个:
$('.append').html('').append('<select name="data[]"><option value="one">1</option></select>');
$('.append').html('.append('.1');
只需清除.append
div内容,在追加之前,您可以用清除它,因此您只需替换以下行:
$('.append').append('<select name="data[]"><option value="one">1</option></select>');
$('.append').append('1');
对于这一个:
$('.append').html('').append('<select name="data[]"><option value="one">1</option></select>');
$('.append').html('.append('.1');
使用.html
$(document).ready(function() {
$('.qty').change(function(){
var k=""
for (var i=0;i<$('.qty').val();i++){
k += '<select name="data[]"><option value="one">1</option></select>';
}
$('.append').html(k);
});
});
$(文档).ready(函数(){
$('.qty').change(函数(){
var k=“”
对于(var i=0;i使用.html
$(document).ready(function() {
$('.qty').change(function(){
var k=""
for (var i=0;i<$('.qty').val();i++){
k += '<select name="data[]"><option value="one">1</option></select>';
}
$('.append').html(k);
});
});
$(文档).ready(函数(){
$('.qty').change(函数(){
var k=“”
对于(var i=0;i您可以在循环之前添加一行来清空append div
$('.append').empty();
因此,这将是:
$(document).ready(function() {
$('.qty').change(function(){
$('.append').empty();
for (var i=0;i<$('.qty').val();i++){
$('.append').append('<select name="data[]"><option value="one">1</option></select>');
}
});
});
$(文档).ready(函数(){
$('.qty').change(函数(){
$('.append').empty();
对于(var i=0;i您可以在循环之前添加一行来清空append div
$('.append').empty();
因此,这将是:
$(document).ready(function() {
$('.qty').change(function(){
$('.append').empty();
for (var i=0;i<$('.qty').val();i++){
$('.append').append('<select name="data[]"><option value="one">1</option></select>');
}
});
});
$(文档).ready(函数(){
$('.qty').change(函数(){
$('.append').empty();
对于(var i=0;i而不是:
$('.append').append('<select name="data[]"><option value="one">1</option></select>');
$('.append').append('1');
使用
$('.append').html('1');
我认为这就是导致它附加附加字段的原因。而不是:
$('.append').append('<select name="data[]"><option value="one">1</option></select>');
$('.append').append('1');
使用
$('.append').html('1');
我认为这就是导致它附加附加字段的原因。使用此选项重置html:
$('.append').html('');
比如:
$(文档).ready(函数(){
$('.qty').change(函数(){
$('.append').html('');
对于(var i=0;i使用此选项重置html:
$('.append').html('');
比如:
$(文档).ready(函数(){
$('.qty').change(函数(){
$('.append').html('');
对于(var i=0;i要保留用户已经做出的任何选择,您可以稍微更改结构
$(document).ready(function() {
$('.qty').change(function(){
var count = $(.append).find("select").length,
qty = $('.qty').val(),
i,
html = $('.append').html();
//append any needed elements
if(count < qty) {
for (i=count;i < qty; i += 1){
html += '<select name="data[]"><option value="one">1</option></select>';
}
$('.append').html(html);
}
//remove any excess elements
for(;count<$(.append).find("select").length;
$(.append).find("select:last").remove()){}
});
});
$(文档).ready(函数(){
$('.qty').change(函数(){
变量计数=$(.append).find(“select”).length,
数量=$('.qty').val(),
我
html=$('.append').html();
//附加任何需要的元素
如果(计数<数量){
对于(i=计数;i<数量;i+=1){
html+='1';
}
$('.append').html(html);
}
//清除任何多余的元素
对于(;count要保留用户已经做出的任何选择,您可以稍微更改结构
$(document).ready(function() {
$('.qty').change(function(){
var count = $(.append).find("select").length,
qty = $('.qty').val(),
i,
html = $('.append').html();
//append any needed elements
if(count < qty) {
for (i=count;i < qty; i += 1){
html += '<select name="data[]"><option value="one">1</option></select>';
}
$('.append').html(html);
}
//remove any excess elements
for(;count<$(.append).find("select").length;
$(.append).find("select:last").remove()){}
});
});
$(文档).ready(函数(){
$('.qty').change(函数(){
变量计数=$(.append).find(“select”).length,
数量=$('.qty').val(),
我
html=$('.append').html();
//附加任何需要的元素
如果(计数<数量){
对于(i=计数;i<数量;i+=1){
html+='1';
}
$('.append').html(html);
}
//清除任何多余的元素
对于只插入一个元素的(;count)(或者更准确地说,除了最后一个元素之外插入的任何元素都将被覆盖)对不起,我没有考虑清楚,我会将select添加到一个变量中,然后使用$('.append').html,就像上面的解决方案所示。感谢您让我知道。这只插入一个元素(或者更准确地说,除了最后一个插入的元素外,任何插入的元素都将被覆盖)对不起,我没有想清楚,我会将select添加到一个变量中,然后使用$('.append').html与上面的解决方案非常相似。感谢您让我知道。通过清除html,您也将清除用户可能已经做出的所有选择。确保这不是OP中的要求,但会导致令人讨厌的用户体验。我猜,通过清除html,您也将清除用户可能已经做出的所有选择。确保这不是requirement在OP中,但会导致恼人的用户体验我猜可能是(没有说明它是错的),但它会产生一个奇怪的用户体验是的,你是对的,我不明白你在StartPhaps中的意思是什么(没有说明它是错的)但是它会产生一个奇怪的错误是的,你是对的,我不明白你在StartRemove中的意思,用户已经做出了选择(如果已经做出选择的话)根据OP,这可能是完全有效的。除此之外,只更改DOM一次,而不是在每个循环中删除用户已经进行的选择(如果已经进行了选择)是一个明确的改进根据OP,这可能是完全有效的。除此之外,只更改DOM一次而不是每次都更改DOM是一个明显的改进