将构造的类名传递给JQuery

Ful*_*der 2 javascript arrays jquery class

我正在使用数组附加到基类名称,以便我可以遍历不同的类.

第一位工作正常.计算数组,只要我排除最后两行代码,我就可以在控制台中获得所有需要的类名.

但是,一旦我将最后两行添加到循环并尝试添加构造的类名以获取每个类的不同文本值,我会收到以下错误:

未捕获错误:语法错误,无法识别的表达式:'.moduleStatusDIS'

并且它在第一次迭代时停止通过数组.代码如下.

function setModuleStatusColour() {

var array = ["DIS", "DDG", "CDX", "DKM", "DBV", "DBB", "DGK", "DAM", "LOG", "DUS", "DCL", "DRI"];
var arrayLength = array.length;
console.log(arrayLength);
for (x=0; x < arrayLength; x++){

    var className = "'"+'.moduleStatus'+array[x]+"'";
    console.log(className);
    var statusValue = $(className).text();
    console.log(statusValue);
}
Run Code Online (Sandbox Code Playgroud)

}

我也尝试使用eval()(虽然我知道它已经被弃用了,绝望对我有好处)见下文.与上面的代码相同的结果.

function setModuleStatusColour() {

var array = ["DIS", "DDG", "CDX", "DKM", "DBV", "DBB", "DGK", "DAM", "LOG", "DUS", "DCL", "DRI"];
var arrayLength = array.length;
console.log(arrayLength);
for (x=0; x < arrayLength; x++){

    var className = "'"+'.moduleStatus'+array[x]+"'";
    console.log(className);
    eval('var statusValue = $(className).text()');
    console.log(statusValue);       
}
Run Code Online (Sandbox Code Playgroud)

}

甚至试图将var className强制转换为String,但对我来说也没有用.

如果我逐类写出它并且不使用数组来构造名称它工作正常但我试图保持代码简短并使其易于添加.所以它已成为一个原则问题:)

任何帮助将不胜感激!

Jam*_*iec 5

这一行:

var className = "'"+'.moduleStatus'+array[x]+"'";
Run Code Online (Sandbox Code Playgroud)

应该简单

var className = ".moduleStatus" + array[x];
Run Code Online (Sandbox Code Playgroud)

给你一个选择器

var statusValue = $(".moduleStatusDIS").text();
Run Code Online (Sandbox Code Playgroud)

选择器只是字符串,不需要用单引号将其包装起来.