Javascript 我如何获得“的价值”;j";在功能之外使用?

Javascript 我如何获得“的价值”;j";在功能之外使用?,javascript,jquery,html,datatables,html-table,Javascript,Jquery,Html,Datatables,Html Table,我在创建 <table> ... content ... </ tables> 。。。内容。。。 …我需要循环外的累积值“j” var dt=$(“.table thead th”).长度; 对于(var i=0;i

我在创建

<table> ... content ...
</ tables>
。。。内容。。。
…我需要循环外的累积值“j”

var dt=$(“.table thead th”).长度;
对于(var i=0;i
类似于以下的方法应该可以工作:

var dt = $(".table thead th").length;
var variable = "";
for (var i = 0; i < dt; ++i) {
    variable += (function (j) {
        var dt = $(".table thead th").length;
        $(".table thead").each(function () {
            var $ths = $(this).find('th');
            if ($ths.length != 0 && $ths.eq(j).text() != "Estado" && $ths.eq(j).text() != "ESTADO" && $ths.eq(j).text() != "Acciones" && $ths.eq(j).text() != "ACCIONES") {
                j = j + ",";
                alert(j);
            }
        });
        return j;
    })(i);
}
alert(variable);
var dt=$(“.table thead th”).长度;
var变量=”;
对于(var i=0;i
在当前代码中,
j
由匿名函数返回,但它没有以任何方式使用,在
for
循环中,您需要通过在每次迭代中添加函数的返回值来执行累加


作为旁注,在循环之外创建函数会更有效。

类似于以下内容的内容应该可以工作:

var dt = $(".table thead th").length;
var variable = "";
for (var i = 0; i < dt; ++i) {
    variable += (function (j) {
        var dt = $(".table thead th").length;
        $(".table thead").each(function () {
            var $ths = $(this).find('th');
            if ($ths.length != 0 && $ths.eq(j).text() != "Estado" && $ths.eq(j).text() != "ESTADO" && $ths.eq(j).text() != "Acciones" && $ths.eq(j).text() != "ACCIONES") {
                j = j + ",";
                alert(j);
            }
        });
        return j;
    })(i);
}
alert(variable);
var dt=$(“.table thead th”).长度;
var变量=”;
对于(var i=0;i
在当前代码中,
j
由匿名函数返回,但它没有以任何方式使用,在
for
循环中,您需要通过在每次迭代中添加函数的返回值来执行累加


作为旁注,在循环之外创建函数会更有效。

好的,根据您现有的代码,快速而肮脏。只需进行一次更改:

var variable;
var dt = $(".table thead th").length;
for (var i = 0; i < dt; ++i) {
    (function (j) {
        var dt = $(".table thead th").length;
        $(".table thead").each(function () {
            var $ths = $(this).find('th');
            if ($ths.length != 0 && $ths.eq(j).text() != "Estado" && $ths.eq(j).text() != "ESTADO" && $ths.eq(j).text() != "Acciones" && $ths.eq(j).text() != "ACCIONES") {
                j = j + ",";
                alert(j);
            }
        });
        variable += j;
        return j;
    })(i);
}

alert(variable);
var变量;
var dt=$(“.table thead th”).长度;
对于(var i=0;i
根据您现有的代码,确定、快速和肮脏。只需进行一次更改:

var variable;
var dt = $(".table thead th").length;
for (var i = 0; i < dt; ++i) {
    (function (j) {
        var dt = $(".table thead th").length;
        $(".table thead").each(function () {
            var $ths = $(this).find('th');
            if ($ths.length != 0 && $ths.eq(j).text() != "Estado" && $ths.eq(j).text() != "ESTADO" && $ths.eq(j).text() != "Acciones" && $ths.eq(j).text() != "ACCIONES") {
                j = j + ",";
                alert(j);
            }
        });
        variable += j;
        return j;
    })(i);
}

alert(variable);
var变量;
var dt=$(“.table thead th”).长度;
对于(var i=0;i
我想你要找的是

var indexes = $(".table thead th").map(function (i) {
    var text = $.trim($(this).text());
    if (text && text != "Estado" && text != "ESTADO" && text != "Acciones" && text != "ACCIONES") {
        alert(i);
        return i;
    }
}).get().join(',')
甚至更短

var ignore = ["Estado", "ESTADO", "Acciones", "ACCIONES"]

var indexes = $(".table thead th").map(function (i) {
    var text = $.trim($(this).text());
    if (text && $.inArray(text, ignore) == -1) {
        alert(i);
        return i;
    }
}).get().join(',')

我想你要找的是

var indexes = $(".table thead th").map(function (i) {
    var text = $.trim($(this).text());
    if (text && text != "Estado" && text != "ESTADO" && text != "Acciones" && text != "ACCIONES") {
        alert(i);
        return i;
    }
}).get().join(',')
甚至更短

var ignore = ["Estado", "ESTADO", "Acciones", "ACCIONES"]

var indexes = $(".table thead th").map(function (i) {
    var text = $.trim($(this).text());
    if (text && $.inArray(text, ignore) == -1) {
        alert(i);
        return i;
    }
}).get().join(',')

不应该是
函数j()
?@Agony不,这是一个匿名函数,它接受一个名为
j
的参数。不应该是
函数j()
?@Agony不,这是一个匿名函数,它接受一个名为
j
的参数。我认为
变量
应该初始化为空字符串,不是零。是的,这是一个事实,虽然j在原始代码中被返回,但它没有被分配给任何东西,因此它的值保持在函数的范围内——返回j并用“variable+=(…)(i)”累积返回值很有希望起作用。我认为
variable
应该初始化为空字符串,而不是零。是的,事实上,虽然j在原始代码中被返回,但它并没有被赋值,所以它的值仍然在函数的范围内——返回j并用“variable+=(…)(i)”累积返回值,希望能起作用。