javascript - 在页面加载时显示来自选择表单的选项

标签 javascript jquery html css

我在下面使用这个脚本来显示或隐藏一些 <div> . selected脚本中的类与 display:block 相关联和我的 <div>从一个带有 display:none 的类开始.

当页面全部加载时div是隐藏的。但我想展示第一个,但我能做到吗?

$(document).ready(function(){
          $("select[name*='material']").change(function(){
              select_changed();
          });
      });

  function select_changed(){
      $("div[id*='mat-']").each(function(){
         $(this).removeClass('selected');
      });
      $("select[name*='material']").each(function(){
          var selected = $(this).val();
          $('#'+selected).addClass('selected');
      });
  }

我已经设置了第一项之类的选项,但是没有显示出来。我觉得问题全是div一开始有一个 display:none类(class)。 我该怎么做。

为了更清楚: HTML

  <div class="materiali">
        <select name="material" id="material">
            <option value="mat-1">Material 1</option>
            <option value="mat-2">Material 2</option>
        </select>
     </div>

    <div class="boxx" id="mat-1">
       Materail 1
    </div>
    <div class="boxx" id="mat-2">
       Materail 2
    </div>

CSS

.boxx{
  display: none
}
.selected{
    display: block;
}

最佳答案

因为您已经为 select_changed() 编写了一个函数,只需在就绪函数上调用该函数,请执行以下操作:

$(document).ready(function(){
  $("select[name*='material']").change(function(){
    select_changed();
  });
  select_changed() //here you can invoke your function on page ready
});

function select_changed(){
  $("div[id*='mat-']").each(function(){
    $(this).removeClass('selected');
  });
  $("select[name*='material']").each(function(){
     var selected = $(this).val();
     $('#'+selected).addClass('selected');
  });
}
.boxx{
  display: none
}
.selected{
    display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="materiali">
        <select name="material" id="material">
            <option value="mat-1">Material 1</option>
            <option value="mat-2">Material 2</option>
        </select>
     </div>

    <div class="boxx" id="mat-1">
       Materail 1
    </div>
    <div class="boxx" id="mat-2">
       Materail 2
    </div>

关于javascript - 在页面加载时显示来自选择表单的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402231/

相关文章:

html - 在 capybara 中使用 xpath 选择第一个元素

jquery - 使用 HTML 数据标记和 jQuery 存储和使用数组

javascript - React/JS 未显示可能性(智能感知)VSCODE

javascript - 更改周历中的时间间隔

javascript - 如何将服务的 $http.get() 返回的值分配给 Controller 中的变量?

javascript - 在 'form' 内附加 div 不起作用

javascript - 单击 div 时显示图像

javascript - 当我们刷新浏览器时如何防止更改所选颜色

python - 如何在 django 中查找 session 是否已过期

html - SQL 查询未显示正确的结果