Javascript jQuery调用中的For循环?

Javascript jQuery调用中的For循环?,javascript,jquery,Javascript,Jquery,我想在ASP.NET母版页上创建一个JavaScript函数,我可以从内容页调用该函数。我基本上会向函数传递一个gridview客户端ID和若干列,并使用此函数调用gridview上的jQuerytablesorter,循环遍历函数调用中指定的列数 我会这样调用函数: <script type="text/javascript"> function sortTable(gridView, numberOfColumns) { $("#" + g

我想在ASP.NET母版页上创建一个JavaScript函数,我可以从内容页调用该函数。我基本上会向函数传递一个gridview客户端ID和若干列,并使用此函数调用gridview上的jQuery
tablesorter
,循环遍历函数调用中指定的列数

我会这样调用函数:

<script type="text/javascript">
        function sortTable(gridView, numberOfColumns) {
            $("#" + gridView).tablesorter({
                headers: {
                    for(var i = 0; i<numberOfColumns; i++){
                        i: { sorter: 'fancyNumber' }
                }

                },
                /*Use jQuery to assign zebra stripe CSS, works in IE6+ 
                rather than using pure CSS which doesn't work in IE8 and below.*/

                widgets: ['zebra'],
                widgetZebra: { css: ['normal-row', 'alt-row'] }
            });
        }
    </script>   
sortTable(,8)

我编写了如下函数:

<script type="text/javascript">
        function sortTable(gridView, numberOfColumns) {
            $("#" + gridView).tablesorter({
                headers: {
                    for(var i = 0; i<numberOfColumns; i++){
                        i: { sorter: 'fancyNumber' }
                }

                },
                /*Use jQuery to assign zebra stripe CSS, works in IE6+ 
                rather than using pure CSS which doesn't work in IE8 and below.*/

                widgets: ['zebra'],
                widgetZebra: { css: ['normal-row', 'alt-row'] }
            });
        }
    </script>   
然后在对象声明中使用headerString变量的子级


这可能吗?

您需要首先构建对象:

var headers = {};
for(var i = 0; i<numberOfColumns; i++) {
    headers[i] = { sorter: 'fancyNumber' };
}

$("#" + gridView).tablesorter({
    headers: headers,
    //...
});
var头={};

对于(var i=0;i您不能在对象定义内循环,因为
for
循环不会计算为值。如果
语句,则
也不会。相反,您需要提前构建对象:

  var headers = {}

  for(var i = 0; i<numberOfColumns; i++)
    headers[i] = { sorter: 'fancyNumber' }

  $("#" + gridView).tablesorter({
    headers: headers

    },
    /*Use jQuery to assign zebra stripe CSS, works in IE6+ 
    rather than using pure CSS which doesn't work in IE8 and below.*/

    widgets: ['zebra'],
    widgetZebra: { css: ['normal-row', 'alt-row'] }
  });
var头={}

对于(var i=0;这与jQuery库无关。这是一个基本的JavaScript语法问题,正如您已经看到的,它是无效的。您不能在对象文字声明中执行for循环。不要使用服务器端语言构建JavaScript。您最好向元素添加一个类,然后从单独的J中选择它“我想最好的办法……”你从哪里得到这些疯狂的想法?