Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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
简单函数只工作一次(显示/隐藏divs)-普通JavaScript_Javascript_Html - Fatal编程技术网

简单函数只工作一次(显示/隐藏divs)-普通JavaScript

简单函数只工作一次(显示/隐藏divs)-普通JavaScript,javascript,html,Javascript,Html,我在一个多语言网站上工作 我希望能够按下一个按钮,all的显示(包装内容)div变为none,只有正确的one变为inline block 它起作用了。但只有一次。有什么问题?请不要用JQuery 编辑在html中添加了一些代码,使其“易懂” JS(所有函数toSl、toAn等都是相同的) 示例:这是一个经过编辑的示例,我假设您正在尝试执行此操作。如果要使用示例运行,必须在按钮上使用class,而不是id,并单击侦听器以查看所有图像,而不仅仅是第一组图像 无论哪种方法,您都可以在一个函数中解决所

我在一个多语言网站上工作

我希望能够按下一个按钮,all的显示(包装内容)div变为
none
,只有正确的one变为
inline block

它起作用了。但只有一次。有什么问题?请不要用JQuery

编辑在html中添加了一些代码,使其“易懂”

JS(所有函数toSl、toAn等都是相同的)


示例:

这是一个经过编辑的示例,我假设您正在尝试执行此操作。如果要使用示例运行,必须在按钮上使用
class
,而不是
id
,并单击
侦听器以查看所有图像,而不仅仅是第一组图像

无论哪种方法,您都可以在一个函数中解决所有问题。每种语言都不需要函数

注释和解释在代码中

//函数toRu(){
函数toAny(){
var lngs=document.queryselectoral(“.lng”);
对于(var i=0;i
Sl语言中的页面内容
以英语显示的页面内容
以Ger语言显示的页面内容

使用相同的主体和不同的名称重复函数是没有意义的。请改用
class
属性,并按类附加单击处理程序。若要仅影响特定目标,请将其作为参数传递给单击处理程序。请参阅示例。请提供一个可运行的示例。其中一半以上未定义(函数,类)。而不是
document.getElementById(“ru”)
使用
这个
或者一个参数,你可以用一个函数来完成所有的事情,因为这是唯一的可变部分。我不知道如何使它可以运行,对不起。在html中添加了一些内容,这样它才有意义。@DrDoom你可以使用类似的东西来创建一个你正在尝试构建的示例。类似这样的东西:谢谢。我将使用它。此导航实际上有标志。在真实网站上,有指向不同语言子页面的重定向按钮。您的方法的主要问题是重复使用相同的
id
,就像在评论中发布的一样。但是,我不知道您的“真实网站”:-)加入讨论=)有一个指向“真实网站”的链接这里。是的,确实出现了多个ID…=/我看到了。很好,看起来Peter做了与我上面所做的相同的更改。所以我把他留给它:-)
function toRu () {
    var lngs, i;
    lngs = document.querySelectorAll(".lng");
    for (var i=0;i<lngs.length;i++){
        lngs[i].style.display="none";
    }
    document.getElementById("ru").style.display="inline-block";
}

document.getElementById("slo").addEventListener("click", toSl);
document.getElementById("ang").addEventListener("click", toAn);
document.getElementById("nem").addEventListener("click", toNe);
document.getElementById("ita").addEventListener("click", toIt);
document.getElementById("hrv").addEventListener("click", toHr);
document.getElementById("rus").addEventListener("click", toRu);

<!DOCTYPE html>
<html>
<body>
<div class="lng" id="sl">
<nav>
<div id="lngSpace">
    Language Selector
    <input type="button" id="slo" class="zastave" value="Slo">
    <input type="button" id="ang" class="zastave" value="Eng">
    <input type="button" id="nem" class="zastave" value="Deu">
    <input type="button" id="ita" class="zastave" value="Ita">
    <input type="button" id="hrv" class="zastave" value="Hrv">
    <input type="button" id="rus" class="zastave" value="Rus">
</div>
</nav>
Content of the page in Sl language
</div>

<div class="lng" id="en">
<nav>
<div id="lngSpace">
    Language Selector
    <input type="button" id="slo" class="zastave" value="Slo">
    <input type="button" id="ang" class="zastave" value="Eng">
    <input type="button" id="nem" class="zastave" value="Deu">
    <input type="button" id="ita" class="zastave" value="Ita">
    <input type="button" id="hrv" class="zastave" value="Hrv">
    <input type="button" id="rus" class="zastave" value="Rus">
</div>
</nav>
Content of the page in En language
</div>

<div class="lng" id="de">
<nav>
<div id="lngSpace">
    Language Selector
    <input type="button" id="slo" class="zastave" value="Slo">
    <input type="button" id="ang" class="zastave" value="Eng">
    <input type="button" id="nem" class="zastave" value="Deu">
    <input type="button" id="ita" class="zastave" value="Ita">
    <input type="button" id="hrv" class="zastave" value="Hrv">
    <input type="button" id="rus" class="zastave" value="Rus">
</div>
</nav>
Content of the page in Ger language
</div>

etc etc

</body>
</html>
var language = navigator.language || navigator.languages[0];
console.log(language);
var languageFistTwo = language.substr(0,2); // To only keep the first 2 characters.
console.log(languageFistTwo);

switch (languageFistTwo) {
    case "sl":
        document.getElementById("sl").style.display="inline-block";
        break;  
    case "en":
        document.getElementById("en").style.display="inline-block";
        break;
    case "de":
        document.getElementById("de").style.display="inline-block";
        break;
    case "it":
        document.getElementById("it").style.display="inline-block";
        break;
    case "hr":
        document.getElementById("hr").style.display="inline-block";
        break;
    case "ru":
        document.getElementById("ru").style.display="inline-block";
        break;
    default:
        document.getElementById("en").style.display="inline-block";
        break;
}