DOM(Javascript)显示/隐藏div不工作

DOM(Javascript)显示/隐藏div不工作,javascript,html,dom,Javascript,Html,Dom,我无法使用AJAX(服务器问题!),因此我不得不依赖DOM+javascript来显示或隐藏页面上的两个div 用户单击两个单选按钮中的一个,并根据所单击的单选按钮显示相应的div 出于某种原因,如果使用“EU”单选按钮,第一个div将加载,但我无法使“international”单选按钮工作。第二个按钮调用正确的脚本,传递变量,甚至隐藏EU div,它只是不显示国际的 我束手无策。有人能帮忙吗 Javascript: function displayLocation(loc){ aler

我无法使用AJAX(服务器问题!),因此我不得不依赖DOM+javascript来显示或隐藏页面上的两个div

用户单击两个单选按钮中的一个,并根据所单击的单选按钮显示相应的div

出于某种原因,如果使用“EU”单选按钮,第一个div将加载,但我无法使“international”单选按钮工作。第二个按钮调用正确的脚本,传递变量,甚至隐藏EU div,它只是不显示国际的

我束手无策。有人能帮忙吗

Javascript:

 function displayLocation(loc){
  alert(loc)
  document.getElementById(loc).style.display = "block"
  if (loc == "eu"){
  document.getElementById("international").style.display = "none"
  }else{
        document.getElementById("eu").style.display = "none"
  }
 }
HTML单选按钮

 <input type="radio" name="loc" style="float:left;" onclick=displayLocation("eu")>
 <input type="radio" name="loc" style="float:left;" onclick=displayLocation("international")>

根据需要隐藏/显示div

 <div id="eu" style="display:none;">European Union</div>
 <div id="international" style="display:none;">International</div>
欧盟
国际的
看看我刚做的


我能够通过将脚本放在调用它的HTML之后来解决这个问题。还有一些风格上的东西需要调整(
onclick=displayLocation
应该在引号中),但除此之外,它对您来说应该很好。

您需要在onlick属性中的
displayLocation('xx')
周围加引号,如:
'displayLocation(“eu”)

我还建议使用事件绑定而不是事件属性:

<input type="radio" name="loc" style="float:left;" data-lang="eu">
<input type="radio" name="loc" style="float:left;" data-lang="international">

Array.prototype.forEach.call(document.querySelectorAll('[name="loc"]'),
function (elem) {
    elem.addEventListener('change', function (e) {
        if (this.checked) {
            displayLocation(this.dataset.lang);
        }
    });
});

Array.prototype.forEach.call(document.queryselectoral('[name=“loc”]'),
功能(elem){
元素addEventListener('change',函数(e){
如果(选中此项){
显示位置(this.dataset.lang);
}
});
});

您必须更改onclick事件,使其看起来像这样

<input type="radio" name="loc" style="float:left;" onclick="displayLocation('eu')">

<input type="radio" name="loc" style="float:left;" onclick="displayLocation('international')">


已测试-这不是correct@user2040862你能说得更具体一点吗?我已经做了这些改变,没有什么好处
 document.getElementById("+loc+").style.display = "block"
<input type="radio" name="loc" style="float:left;" onclick="displayLocation('eu')">

<input type="radio" name="loc" style="float:left;" onclick="displayLocation('international')">