[英]Passing function variables into a second function changes variable values
我想这只是我不知道的面向Javascript的功能,但是来自C#后端环境意味着我认为许多JS的功能都可以正常工作,而通常情况并非如此。
使用下面的代码,我试图将field
和section
的值进一步传递到rows.each上定义的第二个函数中,但是,当我检查调试后,在行中使用的field
和section
变量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.