基于jquery的下拉列表的可能解决方案?

我通过jquery append函数在一个完全独立的页面上生成一个下拉列表。 如果我只是使用append,我会得到重复的数据行

if(params.totalRecords > 50){ var i, j; j = 0; for(i=0; i < params.totalRecords; i++){ if(i%50==0){ $('#startRecord').append( $('').val(i).html((j+1)+'-'+(j+=50))); } } $('#dropDownSpan').css('visibility', 'visible'); } 

所以现在当我添加值来下拉时,它正在添加像这样的重复行

 1-50 51-100 1-50 

根据我选择的选项,它只会使它重复。

现在要避免我做了以下事情

  if(params.totalRecords > 50){ $('#startRecord').val(0).html("1-50"); var i, j; j = 0; for(i=0; i < params.totalRecords; i++){ if(i%50==0){ $('#startRecord').append( $('').val(i).html((j+1)+'-'+(j+=50))); } } $('#dropDownSpan').css('visibility', 'visible'); } 

现在的问题是它总是将它重新调整为1-50记录的原因

 $('#startRecord').val(0).html("1-50"); 

我怎么能在那里显示最后选择的那个。 谢谢

我将在这里建议一个非常不同的,希望更简单的循环方法:

 if(params.totalRecords > 50){ for(var i=0; i < params.totalRecords; i+=50) { $('', { value: i, html: (i+1)+'-'+Math.min(i+50, params.totalRecords) }) .appendTo('#startRecord'); } $('#dropDownSpan').css('visibility', 'visible'); } 

你可以在这里尝试一下 ,这简化了整个循环的完成方式。 我仍然不能100%确定你如何获得额外的附加行,你确定你的当前代码不会以某种方式被调用两次,总totalRecords数不同吗?

关于上面的一方说明,它的输出略有不同,比如说121条记录而不是“101-150”,它会把“101-121”作为最后一项更准确,我希望这就是你的’之后,整体输出如下:

  

用这个var i求解它,j = 0,y = 0; //检查我们有50多少块。 每50条记录1条。 最后一个块不必全部为50(r = 0; r