Javascript Can';t使用JS函数更改div样式
主要目标是根据我单击的按钮显示不同的div,因此它们都以“none”的显示样式开始(除了名为“atualizacoes”的默认样式)。单击按钮后,所有div都应设置为Javascript Can';t使用JS函数更改div样式,javascript,html,css,Javascript,Html,Css,主要目标是根据我单击的按钮显示不同的div,因此它们都以“none”的显示样式开始(除了名为“atualizacoes”的默认样式)。单击按钮后,所有div都应设置为 display=“none”之后,与该按钮关联的按钮被设置为display=“block”。 但是有些地方不对劲,因为当我单击其中一个按钮时,默认的div确实消失了,但什么也没有出现 这就是我试图实现它的方式: 整齐: 代码片段1-我在index.html中使用的函数,用于更改所有 显示 代码片段2-我的样式表中的规则 代码片段3
display=“none”
之后,与该按钮关联的按钮被设置为display=“block”
。
但是有些地方不对劲,因为当我单击其中一个按钮时,默认的div确实消失了,但什么也没有出现
这就是我试图实现它的方式:
整齐:
代码片段1-我在index.html中使用的函数,用于更改所有
显示
代码片段2-我的样式表中的规则
代码片段3-部分index.html代码(我不想粘贴
(一切)
功能替换(显示){
document.getElementById('default').style.display=“无”;
document.getElementById('ecra').style.display=“无”;
document.getElementById(show.syle.display=“block”;
}
.ecra
{
显示:无;
}
大学平台
选择权
埃斯图丹特酒店
阿迪西奥纳尔大学
你好,世界
测试1
测试2
你写的东西有几个问题
首先,您没有任何ID为“ecra”的元素—您要做的是影响所有具有类“ecra”的元素。您可以通过在document.getElementsByClassName(“ecra”)
上循环或映射来实现这一点
其次,当您试图显示show
元素时,您拼写错误了style
请尝试改用此功能:
function replace(show) {
document.getElementById("default").style.display = "none";
Array.from(document.getElementsByClassName("ecra")).map(element => element.style.display = "none");
document.getElementById(show).style.display = "block";
}
按照我的想法,您需要按类名获取元素。它们是
ecra
,因此您可以使用querySelectorAll
并对其长度进行循环。我不会使用getElementsByClassName
,因为它会使行更长并返回数组
function replace(show){
var q=document.querySelectorAll('.ecra'),
document.getElementById('default').style.display="none";
for(var i=0,l=q.length;i<l;i++){
!function(i){
q[i].style.display="none"
}(i)
}
document.querySelector('#'+show).style.display = "block"
}
功能替换(显示){
var q=document.queryselectoral('.ecra'),
document.getElementById('default').style.display=“无”;
对于(var i=0,l=q.length;i我在您的页面中看到了jQuery导入。因此我建议使用jQuery
<script type="text/javascript">
function replace(show) {
jQuery(function($){
$("#default").css({
"display" : "none"
});
$(".ecra").css({
"display" : "none"
});
$("#"+show).css({
"display" : "block"
});
});
}
</script>
功能替换(显示){
jQuery(函数($){
$(“#默认值”).css({
“显示”:“无”
});
$(“.ecra”).css({
“显示”:“无”
});
$(“#”+show).css({
“显示”:“块”
});
});
}
已编辑,缺少字符。JS已更正:
.ecra
{
显示:无;
}
选择权
埃斯图丹特酒店
阿迪西奥纳尔大学
你好,世界
测试1
测试2
函数替换1(显示){
document.getElementById('default').style.display=“无”;
var allByClass=document.getElementsByClassName('ecra');
对于(var i=0;i
没有id为ecra
的元素。请尝试使用文档。GetElementsByCassName
并使用for循环将所需样式应用于所有元素。检查控制台是否有错误。至少会有两个;)我将尝试循环,然后循环中不需要IIFE。@Andreas我将“=0”放在现在,我的网络编辑速度太慢了。这并不是因为我一天之内没有这么做就遇到了问题。似乎不起作用,这确实让我的div出现了,但它不会让其他每个div都消失,因为你的干预,huhuhuhuhu。我错过了它哈哈哈哈哈哈,这个也起作用了!谢谢大家:)