首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面加载从选择的表单显示选项

页面加载从选择的表单显示选项
EN

Stack Overflow用户
提问于 2018-03-21 09:15:29
回答 2查看 317关注 0票数 1

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

加载页面时,所有div都是隐藏的。但我想先展示一下,但我能做到吗?

代码语言:javascript
复制
$(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类。我能做什么。

让我们更清楚地看到: HTML

代码语言:javascript
复制
  <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

代码语言:javascript
复制
.boxx{
  display: none
}
.selected{
    display: block;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-21 09:28:31

由于您已经为select_changed()编写了一个函数,所以只需在就绪函数上调用该函数,如下所示:

代码语言:javascript
复制
$(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');
  });
}
代码语言:javascript
复制
.boxx{
  display: none
}
.selected{
    display: block;
}
代码语言:javascript
复制
<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>

票数 3
EN

Stack Overflow用户

发布于 2018-03-21 09:29:54

代码语言:javascript
复制
$(document).ready(function(){

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

$("select[name*='material']").change(function(){
              select_changed();
          });
          
          $("select[name*='material']").change();
});
代码语言:javascript
复制
.boxx{
  display: none
}
.selected{
    display: block;
}
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49402231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档