Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript重置循环_Javascript_Jquery_Html - Fatal编程技术网

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

我的javascript代码有点问题, 我构建了一个函数,根据用户选择的数量添加归档, 下面是函数

$(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是一个明显的改进