【问题标题】:Need an Array Output from javascript function需要javascript函数的数组输出
【发布时间】:2013-11-25 20:25:27
【问题描述】:

查看此fiddle 对于我正在使用的所有正在运行的代码

我有一个数组i=[10,20,30,40,50,60,70]

我得到的输出为

70:checkbox(checked value 70) .

我需要显示所有数组及其复选框,以便我可以检查我想要的任何数字并检索检查的 ID

想要的输出:

70:checkbox(checked value 70)
60:checkbox(checked value 60)
50:checkbox(checked value 50)
40:checkbox(checked value 40)
30:checkbox(checked value 30)
20:checkbox(checked value 20)
10:checkbox(checked value 10)

上述小提琴的代码在这里: JS

    var i=[10,20,30,40,50,60,70]; 

//$("#add").click(function(){
$(document).ready(function(){

    //  alert("ff");
    var newrow=$('#services .headings').clone().removeClass('headings');
    for(var k=0;k<i.length;k++)

    {
        var disp = {

            names: i[k],
            checks: i[k]

        } 
        func.call(row,disp);
    }

    func(newrow,disp)
    .insertAfter('#services tr.headings')
    .show();
});

function func(row,disp)
{     
    row.find('.servicenames').text(disp.names);
    row.find('.servicecheck').data('href',disp.checks);

    return row;  
}

$("#services").on("click", ".servicecheck",function(){     
    alert($(this).data('href')); 
});

html

        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<table id="services">
                  <tr class="headings"  style="display:none">
                      <td><span class="servicenames"> service names here</span></td>
                      <td><span class="servicecheck" data-href=""><input type="checkbox" id="servicecheck" name="servicecheck"> </td>
                  </tr>

              </table>

【问题讨论】:

  • Java 不是 Javascript。在您的问题中发布您的代码,不要链接到外部资源。
  • Java 不是 JavaScript。
  • 期待结果和最大浏览量,以便我能尽快获得
  • 这里不是这样做的,它肯定会对你不利。
  • 为什么是-1?我的问题并非无关紧要或毫无意义,只是向更多观众寻求答案!!!

标签: javascript jquery ajax arrays


【解决方案1】:

在你的 jsfiddle 你有下一个代码

....
var newrow=$('#services .headings').clone().removeClass('headings');
for(var k=0;k<i.length;k++)
{
    var disp = {
        names: i[k],
        checks: i[k]
    } 
}

func(newrow,disp).insertAfter('#services tr.headings').show();

....

function func(row,disp)
{

    row.find('.servicenames').text(disp.names);

    row.find('.servicecheck').data('href',disp.checks);

    i+=1;//this you try change global array, this string need remove
    return row;  

}

for 循环内你只有声明disp,所以你只调用一次func,你也一次创建新行。为了解决这个问题,你必须像这样改变你的代码

....
for(var k=0;k<i.length;k++)
{
    var newrow=$('#services .headings').clone().removeClass('headings');
    var disp = {
        names: i[k],
        checks: i[k]
    } 
    func(newrow,disp).insertAfter('#services tr.headings').show();
}

....

function func(row,disp)
{

    row.find('.servicenames').text(disp.names);
    row.find('.servicecheck').data('href',disp.checks);

    return row;  

}

【讨论】:

    【解决方案2】:

    试试这个,

    var i=[10,20,30,40,50,60,70]; 
    
    //$("#add").click(function(){
    $(document).ready(function(){
    
    //  alert("ff");
    var newrow=$('#services .headings').clone().removeClass('headings').css("display","block");
    for(var k=0;k<i.length;k++)
    
    {
      var disp = {
    
      names: i[k],
      checks: i[k]
    
    } 
    
      $('#services tbody').append(func(newrow,disp).html());
    
    }
    
    
    
    });
    
    
       function func(row,disp)
        {
    
        row.find('.servicenames').text(disp.names);
    
        row.find('.servicecheck').data('href',disp.checks);
    
        return row;  
    
        }
    
    
    $("#services").on("click", ".servicecheck",function(){     
        alert($(this).data('href')); 
    });
    

    Fiddle

    希望对你有帮助

    【讨论】:

    • 运行良好,但检查时,href 不起作用?我的意思是除了附加每个 ('.servicecheck').data('href',disp.checks);我可以将两者都附加在一行中吗
    • 你的代码在表格的另一个 td 中给出了我的复选框。这使我的实际过程复杂化,因为我将有至少 1000 条记录要检查/取消检查。无论如何,谢谢帮助,以上答案是我计划的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多