javascript - 努力使用 jQuery 更改来显示特定的 div/h2

标签 javascript jquery html

对 js 相当陌生,所以希望这不是一个愚蠢的问题。我花了一段时间在论坛上搜索,但找不到满足我的具体需求的答案。

我有一个下拉框,我需要发生的是当选择某个选项时要显示某个 div/h2,但我似乎得到全部或没有......任何指针将不胜感激。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Change jq</title>

  <script src="https://code.jquery.com/jquery-3.4.1.js"></script>
</head>
<body>

<select name="sweets">
  <option value="Chocolate">Chocolate</option>
  <option value="Cakes">Cakes</option>
  <option value="Caramel">Caramel</option>
  <option value="Fudge">Fudge</option>
</select>
<div></div>

<script>
$( "select" )
  .change(function () {
    var str = "";

    $( "select option:selected" ).each(function() {
      str += $( this ).val() + "";
      echo str;
    });
    $( "div" ).text( str );
    $('.whoToSee').show();
    //$('h2:contains(.str)') . show();
  })
  .change();
</script>


<div class='whoToSee' style='display:none'>

 <h2 class="Chocolate">Chocolate</h2>
<strong>Who to see: </strong>Bob

<strong>Advice:</strong>Eat less of it
</div>

<div class='whoToSee' style='display:none'>
<h2 class="Cakes">Cakes/h2>

<strong>Who to see:</strong>Sally
</div>


</body>
</html>

最佳答案

这里突然出现一些事情 -

1) <h2 class="Cakes">Cakes/h2> ,你缺少<在收盘 h2 之前。

2) 脚本无法正常工作的主要问题是 echo不是 JavaScript 函数。删除它可以解决不显示任何内容的问题。您所看到的行为的原因是 Javascript 在遇到错误时将停止处理您的脚本。

3) 您的脚本包含以下行:$( "div" ).text( str ); - 这会将每个 div 中的文本更改为 str 的值。例如,当您切换到 Cakes 时,您的所有 div 都会填充 Cakes。如果这就是您想要的,那就太好了。此外,选择器".whoToSee"将选择您的两个 div 并显示它们。

您可以在此处查看更改后的效果:https://jsfiddle.net/Kolichikov/hn6zjxeu/

如果您只想显示其中一个 div,您可以为每个 div 指定一个 id(例如 id="Chocolate"、id="Cakes")。可以看到变化here 。 (另请注意,我添加了对 jquery 函数 hide 的调用以隐藏当前选定的 div)。

关于javascript - 努力使用 jQuery 更改来显示特定的 div/h2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59831838/

相关文章:

javascript - 当 async prop Promise 解析时如何更新 React 组件?

javascript - 是否可以在 Angular 项目中的 javascript 文件和 typescript 文件之间共享相同的全局变量?

javascript - Symfony 3 Infinite Scroll for Announce

jquery - 在 Jquery 中制作函数

javascript - 触发上传文件时如何保持全屏?

html - 如何在 HTML <video> 标签上应用白色 "filter"(alpha 50%)?

javascript - 通过 if 语句 Javascript 更改 div 的文本

javascript - Windows 8 HTML/JS 应用程序可以作为网站运行吗?

带有新元素的 javascript 函数 onclick

javascript - 为什么在jQuery中经过for循环后数组顺序是随机的?