繁体   English   中英

将函数变量传递给第二个函数会更改变量值

[英]Passing function variables into a second function changes variable values

我想这只是我不知道的面向Javascript的功能,但是来自C#后端环境意味着我认为许多JS的功能都可以正常工作,而通常情况并非如此。

使用下面的代码,我试图将fieldsection的值进一步传递到rows.each上定义的第二个函数中,但是,当我检查调试后,在行中使用的fieldsection变量if (classList.contains(field) && classList.contains(section))具有与我期望的值不同的值。

它们显然在某个地方被更改,但是我不确定是什么原因。

function setValidationRowToFailure(field, section) {
        var rows = $("#PeekInstruction .validation-row");
        rows.each(function(field, section) {
            var classList = $(this).find(".validation-row-value").attr("id");
            if (classList.contains(field) && classList.contains(section)) {
                $(this).removeClass("validation-row-success");
                $(this).addClass("validation-row-failure");
            }
        })
    }

为了进一步支持我的观点,即未使用field和section的原始值,在我的IDE中它们实际上是灰色的。 这绝对是一个范围问题。

您的问题似乎是这里定义的参数:

function setValidationRowToFailure(field, section) {

被这些阴影所掩盖:

rows.each(function(field, section) {

通过删除传递给.each的函数中的参数,您应该会很好:

rows.each(function() {

或者只是重命名它们:

rows.each(function(index, element) {

请注意,jQuery的.each传递索引变量作为第一个参数: https : .each

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM