You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现点击英文单词切换韩语翻译的显示与隐藏?

如何实现点击英文单词切换韩语翻译的显示与隐藏?

嘿,我来帮你搞定这个问题!你的思路其实是对的,只是几个小细节没处理好,咱们一步步改就行,完全不用复杂的语法~

先说说你代码里的几个小问题:

  • 你用this.closest("span")找错元素啦——.english本身是<li>标签,里面的韩语翻译是它的子元素<span class="answer">,所以应该用this.querySelector(".answer")来获取对应的翻译元素。
  • classlist要写成驼峰式的classList,JS里的属性名是区分大小写的哦。
  • 调用toggle()的时候,直接传类名"hideMe"就好,不用加.,因为这里要操作的是类名本身,不是CSS选择器。

下面是修正后的完整代码,你直接替换原来的代码就能用啦:

HTML

<div class="Words-container">
  <div id="Verbs">
    <div>
      <h2 class="Word-title">Verbs</h2>
    </div>
    <div>
      <ul id="List-words">
        <li class="english">To fall-- <span class="answer hideMe"> 넘어다         </span></li>
        <li class="english">To be young-- <span class="answer hideMe"> 젊다           </span></li>
        <li class="english">To be anxious-- <span class="answer hideMe"> 불안하다       </span></li>
        <li class="english">To be sensitive-- <span class="answer hideMe"> 예민하다       </span></li>
        <li class="english">To translate-- <span class="answer hideMe"> 번역하다       </span></li>
        <li class="english">To give an example--<span class="answer hideMe"> 예를 들어 주다 </span></li>
        <li class="english">To be perfect-- <span class="answer hideMe"> 완벽하다       </span></li>
        <li class="english">To be efficient-- <span class="answer hideMe"> 효율적이다     </span></li>
      </ul>
    </div>
  </div>
</div>

CSS

.hideMe {
  visibility: hidden;
}

JavaScript

// 给所有英文单词添加点击事件监听
const englishWords = document.querySelectorAll(".english");
for (let x = 0; x < englishWords.length; x++) {
  englishWords[x].addEventListener("click", function() {
    // 找到当前点击的li里的韩语翻译元素
    const koreanAnswer = this.querySelector(".answer");
    // 切换hideMe类来控制显示/隐藏
    koreanAnswer.classList.toggle("hideMe");
  });
}

我还额外优化了一点:把document.querySelectorAll(".english")的结果存到变量englishWords里,不用每次循环都重新查询DOM,这样代码运行起来更高效哦~

备注:内容来源于stack exchange,提问作者Reg

火山引擎 最新活动