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