JavaScript代码不工作,可以';t隐藏/显示div内容
新的堆栈溢出和JavaScript作为一个整体 我一直在尝试制作一个简单的函数,将单击时几个div元素的内联显示属性从“none”更改为“block”。尝试了这里类似问题的不同代码位,但都没有成功。这是密码。如果格式不正确,我很抱歉:( 代码:JavaScript代码不工作,可以';t隐藏/显示div内容,javascript,html,hide,element,show,Javascript,Html,Hide,Element,Show,新的堆栈溢出和JavaScript作为一个整体 我一直在尝试制作一个简单的函数,将单击时几个div元素的内联显示属性从“none”更改为“block”。尝试了这里类似问题的不同代码位,但都没有成功。这是密码。如果格式不正确,我很抱歉:( 代码: subGroupIdStyle = document.getElementById('subGroupId').style; 函数切换菜单项(子类ID){ subjectIDStyle=document.getElementById('subject
subGroupIdStyle = document.getElementById('subGroupId').style;
函数切换菜单项(子类ID){
subjectIDStyle=document.getElementById('subjectId').style;
var see=subsubidStyle.display;
如果(请参见==‘无’){
参见='块';
}否则{
见=‘无’;
}
};
计算机组件
CPU
+
+
+
+
主板
+
+
+
+
内存
+
+
+
+
硬盘驱动器
+
+
+
+
试试这个:
subGroupIdStyle = document.getElementById('subGroupId').style;
更改为
subGroupIdStyle = document.getElementById(subGroupId).style;
将变量包装为“”时,您没有传递该变量
subGroupIdStyle = document.getElementById(subGroupId).style;
删除Subcode ID中的“”,这样实际上可以传递变量字符串
另外,不要执行see='block';
dosubkidStyle.display='block'
,对于else条件也是如此
代码see='block'
不起作用,因为您当时只是复制了subkidStyle.display的值,而您可以使用它来检查值,当您更改see
的值时,它不会更改subkidStyle.display
的值。您应该避免同时使用see
的值nd使用subwidStyle。在适当的位置显示
函数切换菜单项(子类ID){
SubsubIDStyle=document.getElementById(SubsubId).style;
var see=subsubidStyle.display;
如果(请参见==‘无’){
SUBSUBIDSTYLE.display='block';
}
否则{
subsubidStyle.display='none';
}
};
计算机组件
CPU
+
+
+
+
主板
+
+
+
+
内存
+
+
+
+
硬盘驱动器
+
+
+
+
如果
条件,最好使用单行。变量传递错误。您正在应用字符串而不是传递变量。您可以这样使用
document.getElementById(subGroupId)
并且see='block';
不会覆盖元素样式。因此,您可以使用像variable.style.display=“block”
函数切换菜单项(子类ID){
var subsubidStyle=document.getElementById(subsubId);
SubkidStyle.style.display=(SubkidStyle.style.display='none')?'block':'none';
}
计算机组件
CPU
+
+
+
+
主板
+
+
+
+
内存
+
+
+
+
硬盘驱动器
+
+
+
+
您有两个错误:
1-不应将变量SUBSUBID括在引号中
2-您不能通过以下方式更改dom的样式:
var see = subGroupIdStyle.display;
if (see == 'none') {
see = 'block';
} else {
see = 'none';
}
使用
subkidStyle.display='block';
您只是在更改变量的值,请参见
。您需要更新DOM中元素的样式
。请使用document.getElementById('subseId')。style.display=see=='none'?'block':'none';
。我建议您创建一个类。隐藏{display:none;}
并使用.classList.toggle('hide')进行切换
问题在于,您只是在复制属性的值。因此,当您更新该变量时,它不会影响对象中的属性。@Tushar的注释是最恰当的方式,但如果您不熟悉三元运算符,请尝试使用子类型。显示而不是请同时在if
和else
中查看将其他答案与此相同(删除引号)已经介绍过了。要替换请参见
。请解释为什么它不能与一起使用请参见
@Rajesh,是的,我这样做了。谢谢!它现在工作得很好!在函数的参数周围换行“”不会正确传递变量,对吗?或者我又错过了什么吗?@Pete,当你换行变量的时候名称用引号括起来,它不再是变量,而是一个字符串,因此无论单击什么,您都在函数中传递“subseId”。@Pete,我建议您在编写代码时使用Firebug或任何调试器,您将能够看到活动变量的值以及更多内容,这将帮助您更好地了解ba中发生的事情ckground。此外,如果您的问题通过以下任一答案解决,请选择正确答案。