我在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”。然后将括号更改为括号,但仍然没有,只有黄色突出显示的行。
对不起,我只是难过。再次,谢谢大家的理解。
答案 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" : "";
}