搞教育的Bob 2024-09-19 18:28 采纳率: 66.7%
浏览 2
已结题

js根据select值显示隐藏元素不生效

各位帮我看看这个代码不生效是哪里出问题啦?

<li>
<label>国籍</label>
    <select id="nationality" class="form-input">
        <option value="" style="display:none">请选择你的国籍</option>
        <option value="China">中国</option>
        <option value="HongKong">中国香港</option>
        <option value="Macao">中国澳门</option>
        <option value="Taiwan">中国台湾</option>
        <option value="Others">其它国家</option>
    </select>
</li>
<li id="Countrys" style="display:none;">
    <label>其它国籍</label>
    <input type="text" class="form-input" placeholder="请填写您的国籍">
</li>

我是想select选择到其它国家时显示下面这个隐藏的li,他就死活不显示。

<script language="javascript" type="text/javascript">
document.getElementById('Nationality').addEventListener('change', function() {
    var selectedVal = this.value;
    var hdCountry = document.getElementById('Countrys');
    if (selectedVal == 'Others') {
        hdCountry.style.display = 'block';
    } else {
        hdCountry.style.display = 'none';
    }
});
</script>
  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-19 18:42
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你提供的代码来看,有几个可能的问题导致你的 JavaScript 代码无法正常工作。我会为你列举并提供相应的解决方案:

    1. 元素ID的不匹配: 你的 JavaScript 代码中使用的 ID 是 'Nationality',但 HTML 中 select 元素的 ID 是 'nationality'(注意大小写)。请确保你在 JavaScript 中使用的 ID 与 HTML 中的实际 ID 完全匹配。

    修改 JavaScript 中的 ID 为 'nationality'

    document.getElementById('nationality').addEventListener('change', function() {
        // ... 其他代码 ...
    });
    
    1. 事件监听器添加的时间点: 确保你的 JavaScript 代码在 DOM 完全加载后执行。如果 DOM 元素在脚本执行时尚未完全加载,getElementById 可能无法找到对应的元素。你可以将你的脚本放在 DOMContentLoaded 事件回调中,或者将 <script> 标签放在 HTML 文档的底部。
    2. 其它可能的冲突: 确保页面上没有其他 JavaScript 代码或 CSS 样式影响你的选择元素或隐藏元素。有时,其他的脚本或样式可能会覆盖或干扰你的操作。

    在修正上述问题后,你的代码应该能够正常工作。如果仍然存在问题,请检查浏览器的控制台以查看是否有任何错误或警告。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月27日
  • 已采纳回答 9月19日
  • 创建了问题 9月19日

悬赏问题

  • ¥15 IEd中开关量采样信号通道设计
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用
  • ¥15 QT+FFmpeg使用GPU加速解码
  • ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
  • ¥15 来个会搭建付费网站的有偿
  • ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏
  • ¥20 校园网认证openwrt插件
  • ¥15 以AT89C51单片机芯片为核心来制作一个简易计算器,外部由4*4矩阵键盘和一个LCD1602字符型液晶显示屏构成,内部由一块AT89C51单片机构成,通过软件编程可实现简单加减乘除。
  • ¥15 求GCMS辅导数据分析