Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript进行内容切换_Javascript - Fatal编程技术网

使用Javascript进行内容切换

使用Javascript进行内容切换,javascript,Javascript,我的主页上有3个特别感兴趣的部分。 我想做的是设置调用javascript函数的链接,确保隐藏2个部分,并且只显示其按钮被单击的部分 这是我的密码: <div id="idc" class="leftFloat"><span id="title" class="title1">Introduction</span></div> <div class="rightFloat">

我的主页上有3个特别感兴趣的部分。 我想做的是设置调用javascript函数的链接,确保隐藏2个部分,并且只显示其按钮被单击的部分

这是我的密码:

            <div id="idc" class="leftFloat"><span id="title" class="title1">Introduction</span></div>
            <div class="rightFloat">
                <div id="agri"><a onclick="ContentSwitch('Agri');">Agri Industries</a></div>
                <div id="ict"><a onclick="ContentSwitch('ict');">ICT Investments</a></div>
                <div id="intro"><a onclick="ContentSwitch('intro');">Introduction</a></div>
            </div>

            <div id="agriContent" style="display: none;">
                <div class="vrtlay_both">AGRI INDUSTRIES</div>
            </div>

            <div id="ictContent" style="display: none;">
                <div class="vrtlay_both">ICT INVESTMENTS</div>
            </div>

            <div id="introContent">
                <div class="vrtlay_both">ICT INVESTMENTS</div>
            </div>

            <script type="text/javascript">
                function ContentSwitch(id) {
                    if (id = "Agri") {
                        if (document.getElementById("agriContent").style.display = "none") {
                            document.getElementById("agriContent").style.display = "block";

                            // Hide other content
                            document.getElementById("ictContent").style.display = "none";
                            document.getElementById("introContent").style.display = "none";

                            // Change the look of the title
                            document.getElementById("idc").style.backgroundColor = "rgb(0, 100, 0)";
                            document.getElementById("idc").style.color = "rgb(255, 255, 255)";
                            document.getElementById("title").innerHTML = "Agri Industries";
                        } else {
                            return;
                        }
                    }
                    if (id = "ict") {
                        if (document.getElementById("ictContent").style.display = "none") {
                            document.getElementById("ictContent").style.display = "block";

                            // Hide other content
                            document.getElementById("agriContent").style.display = "none";
                            document.getElementById("introContent").style.display = "none";

                            // Change the look of the title
                            document.getElementById("idc").style.backgroundColor = "rgb(36, 46, 111)";
                            document.getElementById("idc").style.color = "rgb(255, 255, 255)";
                            document.getElementById("title").innerHTML = "ICT Investments";
                        } else {
                            return;
                        }
                    }
                    if (id = "intro") {
                        if (document.getElementById("introContent").style.display = "none") {
                            document.getElementById("introContent").style.display = "block";

                            // Hide other content
                            document.getElementById("agriContent").style.display = "none";
                            document.getElementById("ictContent").style.display = "none";

                            // Change the look of the title
                            document.getElementById("idc").style.backgroundColor = "rgb(255, 255, 255)";
                            document.getElementById("idc").style.color = "rgb(0, 0, 0)";
                            document.getElementById("title").innerHTML = "Introduction";
                        } else {
                            return;
                        }
                    }
                }
            </script>
导言
农业产业
信息和通信技术投资
介绍
农业产业
信息和通信技术投资
信息和通信技术投资
功能内容开关(id){
如果(id=“农业”){
if(document.getElementById(“agriContent”).style.display=“无”){
document.getElementById(“agriContent”).style.display=“block”;
//隐藏其他内容
document.getElementById(“ictContent”).style.display=“无”;
document.getElementById(“introContent”).style.display=“无”;
//更改标题的外观
document.getElementById(“idc”).style.backgroundColor=“rgb(01100,0)”;
document.getElementById(“idc”).style.color=“rgb(255,255,255)”;
document.getElementById(“title”).innerHTML=“农业产业”;
}否则{
返回;
}
}
如果(id=“ict”){
if(document.getElementById(“ictContent”).style.display=“无”){
document.getElementById(“ictContent”).style.display=“block”;
//隐藏其他内容
document.getElementById(“agriContent”).style.display=“无”;
document.getElementById(“introContent”).style.display=“无”;
//更改标题的外观
document.getElementById(“idc”).style.backgroundColor=“rgb(36,46,111)”;
document.getElementById(“idc”).style.color=“rgb(255,255,255)”;
document.getElementById(“title”).innerHTML=“ICT投资”;
}否则{
返回;
}
}
如果(id=“intro”){
if(document.getElementById(“introContent”).style.display=“无”){
document.getElementById(“introContent”).style.display=“block”;
//隐藏其他内容
document.getElementById(“agriContent”).style.display=“无”;
document.getElementById(“ictContent”).style.display=“无”;
//更改标题的外观
document.getElementById(“idc”).style.backgroundColor=“rgb(255,255,255)”;
document.getElementById(“idc”).style.color=“rgb(0,0,0)”;
document.getElementById(“title”).innerHTML=“简介”;
}否则{
返回;
}
}
}
javascript没有启动。
我知道这并不是最优雅(或最有效)的方法,所以如果有人能提出更好的方法,我洗耳恭听


现在,我真的很想这样做,但我看不出问题所在。

Javascript中的比较使用双等于运算符(
==
),而不是一个等于,因此您在
if
语句中赋值。尝试更改它们,看看是否有效。

Javascript中的比较使用双等于运算符(
=
),而不是单个等于,因此您在
if
语句中分配值。尝试更改它们,看看是否有效。

好的

这是你真正的问题。你在做作业,而不是比较

现在来改进代码

“id”是独占的,是一个常量表达式,因此您可以在此处使用
开关,但至少应该使用
elseif

  if (document.getElementById("agriContent").style.display = "none") { 
同样,这里的操作是错误的,但是您也无法捕获对所关联元素的引用,因此在反复运行getElementById时会失去性能。此外,您正在测试特定的样式属性,以便与实现紧密耦合。这使得您的代码不那么灵活,更容易出错。CSS类是您的朋友:使用它们,更改它们的应用程序,别管样式

  } else { 
    return; 
  } 
否则什么也不做?您这样做是为了弥补前面的逻辑中缺少elseif语句的不足-这个块只是让人困惑。

好的

这是你真正的问题。你在做作业,而不是比较

现在来改进代码

“id”是独占的,是一个常量表达式,因此您可以在此处使用
开关,但至少应该使用
elseif

  if (document.getElementById("agriContent").style.display = "none") { 
同样,这里的操作是错误的,但是您也无法捕获对所关联元素的引用,因此在反复运行getElementById时会失去性能。此外,您正在测试特定的样式属性,以便与实现紧密耦合。这使得您的代码不那么灵活,更容易出错。CSS类是您的朋友:使用它们,更改它们的应用程序,别管样式

  } else { 
    return; 
  } 
否则什么也不做?您这样做是为了弥补以前逻辑中elseif语句的不足——这个集团
    <div id="agriContent" class="invisible">
        <div class="vrtlay_both">AGRI INDUSTRIES</div>
    </div>

    <div id="ictContent" class="invisible">
        <div class="vrtlay_both">ICT INVESTMENTS</div>
    </div>

    <div id="introContent" class="visible">
        <div class="vrtlay_both">ICT INVESTMENTS</div>
    </div>
function ContentSwitch(div) {
      $(".visible").addClass("invisible").removeClass("visible");
      div.removeClass("invisible").addClass("visible");
}
var agriContent, ictContent, introContent, idc, title;

function ContentSwitch(id) {
    agriContent = agriContent || document.getElementById("agriContent");
    ictContent = ictContent || document.getElementById("ictContent");
    introContent = introContent || document.getElementById("introContent");
    idc = idc || document.getElementById("idc");
    title = title || document.getElementById("title");          
    switch (id) {
        case "Agri":
            if (agriContent.style.display !== "none") {
                return;
            }
            agriContent.style.display = "block";
            ictContent.style.display = "none";
            introContent.style.display = "none";
            idc.style.backgroundColor = "rgb(0, 100, 0)";
            idc.style.color = "rgb(255, 255, 255)";
            title.innerHTML = "Agri Industries";
            break;
        case "ict":
            // ...
            break;
        case "intro":
            // ...
            break;
    }
}