试图将连接的JavaScript字符串传递给getElementById?

试图将连接的JavaScript字符串传递给getElementById?,javascript,Javascript,我得到一个错误,说: “未捕获的TypeError:无法读取null的属性'style'” 我的JavaScript是: function AddAFacultyMember(){ for(x=2;x<=10;x++){ var str0 = "'"; var str1 = 'Faculty'; var str2 = x; var str3 = 'input'; var str4 = "'";

我得到一个错误,说:

“未捕获的TypeError:无法读取null的属性'style'”

我的JavaScript是:

function AddAFacultyMember(){
    for(x=2;x<=10;x++){

        var str0 = "'";
        var str1 = 'Faculty';
        var str2 = x;
        var str3 = 'input';
        var str4 = "'";

        var concat = str0.concat(str1,str2,str3,str4);

        if( document.getElementById(concat).style.display =='none' ){
            var eligible = concat;
            return;
        }

        document.getElementById(eligible).style.display == 'block';

    }

}
函数AddAFacultyMember(){
对于(x=2;x这将起作用:

function AddAFacultyMember(){
    for(x=2;x<=10;x++){
        var concat = 'Faculty' + x + 'input';
        var ele = document.getElementById(concat);
        if( ele.style.display =='none' ){
            ele.style.display = 'block';
        }
    }

}
函数AddAFacultyMember(){
对于(x=2;x试试这个:

función AddAFacultyMember({ 
    for(x=2;x<=10;x++){ 
        var str1 = 'Faculty'; 
        var str2 = x; 
        var str3 = 'input'; 
        var concat =str1.concat(str2,str3);
       ... 
función addafacultymber({
for(x=2;x发现了问题

double==没有将getElementById(合格)的显示重新设置为“block”,尽管它正确构造了字符串。解决方案/修复:

document.getElementById(eligible).style.display = 'block';
还删除了str0和str4:

function AddAFacultyMember(){
    for(x=2;x<=10;x++){ 
        var str1 = 'Faculty'; 
        var str2 = x; 
        var str3 = 'input'; 
        var concat =str1.concat(str2,str3);

        if( document.getElementById(concat).style.display =='none' ){

            var eligible = concat;
            document.getElementById(eligible).style.display = 'block';
            eligible = '';
            return;
        }

    }

}
函数AddAFacultyMember(){

对于(x=2;x去掉
str0
str4
concat
变量将其内容传递给getElementByID;您不需要引号。此外,如果if语句为false,
qualified
将未定义。打印
concat
console.log(concat)
)的内容,并在控制台中进行检查(点击F12)。它是否匹配HTML中设置的任何ID?@j08691更正并在测试的函数之外定义str2和str3,去掉str0和str4;相同的错误…var
elegible
在错误的范围内定义。这是正确的答案。具体来说,concat只接受字符串,而原始代码采用int.var
elegible
在错误的范围中定义,这仍然应该失败。
合格的
在本例中对于varios未定义scenarios@DalorzoJS使用函数作用域,因此尽管看起来
合格
声明在错误的范围内,但实际上并非如此。
合格
位于函数的顶部。为了简单起见,代码已被澄清。不确定它是否偏离了OP的要求…但它将执行他的代码尝试的操作。编辑我的答案以反映您提到的更改。顺便说一句,这不是一个真正的问题…它可能没有执行您希望它执行的操作,但它没有创建您发布的问题。您的问题是您正在向字符串添加
'
。…谢谢Vinny!我看到了您的更新,并对您的答案进行了投票!我同意不需要符合条件的var…谢谢您的帮助!