基本Javascript函数中的语法错误

时间:2018-03-28 09:58:42

标签: javascript

我在IE中调试时一直遇到错误。 这是一个基本的隐藏功能。

idHide是要隐藏的字段的ID idCondition是条件与之比较的引用字段的id value是满足条件的值

res <- matrix(unlist(veclist), nrow=length(veclist), byrow=T) * sapply(1:N, function(i) arr[,,i][lower.tri(arr[,,i])])

我总是遇到错误:

function hideOnCondition(idHide, idCondition, value)
{    
    if (document.getElementById[idCondition] = value)
    {    
        document.getElementById(idHide).style.display = "none";         
    }
    else
    {           
        document.getElementById(idHide).style.display = "";
    }
}
  

“属性的值为null或undefined而不是函数对象”

然后我尝试用“all”更改“getElementById”。然后将括号更改为括号,但仍然没有,只有黄色突出显示的行。

对不起,我只是难过。再次,谢谢大家的理解。

4 个答案:

答案 0 :(得分:1)

function myFunction(option, value, div) {

    //get the element you want to hide by it's ID
    var x = document.getElementById(div); 

    //if the option you selected is coresponding to the given value 
    //hide the earlier selected element
    if (option === value) {
        x.style.display = "none";
    } else {
        x.style.display = "block";
    }
}

这应该这样做。

答案 1 :(得分:1)

  • 您使用方括号而不是括号
  • ===应该用于比较=

function hideOnCondition(idHide, idCondition, value)
{    
    if (document.getElementById(idCondition) === value) // <- fix here
    {    
        document.getElementById(idHide).style.display = "none";         
    }
    else
    {           
        document.getElementById(idHide).style.display = "";
    }
}

答案 2 :(得分:0)

您应该使用比较运算符assignment

而不是Identity / strict equality (===)
function hideOnCondition(idHide, idCondition, value) {
    const result = document.getElementById[idCondition] === value ? 'none' : '';
    document.getElementById(idHide).style.display = result;
}

答案 3 :(得分:0)

我可以看到两个问题

  • 使用=代替===而不是比较值,而只是将document.getElementById[idCondition]的输出与值进行比较。

  • 使用[]而不是使用()调用函数

尽管如此,这些都不会导致您在帖子中声明的语法错误。

您可以将其简化为

var getEl = (id) => document.getElementById(id);
function hideOnCondition(idHide, idCondition, value)
{    
    getEl(idHide).style.display = getEl(idCondition).value == value ? "none" : "";
}