繁体   English   中英

jQuery:根据从下拉列表中选择的选项显示/隐藏元素

[英]jQuery: Show/Hide Elements based on Selected Option from Dropdown

更新:回答了最初的问题。 但是,代码为所有人揭晓。 所以,我在下面修改了我的问题:

所以我有以下通过 php 动态生成的 html

<div class="image-link link-posttypes mainSelector1">
    <select id="wp_accordion_images[20110630022615][post_type]" name="wp_accordion_images[20110630022615][post_type]">
        <option value="">default</option>
        <option value="post" class="post-type">Post</option><option value="page" class="post-type">Page</option><option value="dp_menu_items" class="post-type">Menu Items</option>
        <option value="wps_employees" class="post-type">Employees</option><option value="custom-link">Custom Link</option>
    </select>
</div>

<div class="image-link link-pages1">
    <select id="wp_accordion_images[20110630022615][page_id]" name="wp_accordion_images[20110630022615][page_id]">
        <option value="50" class="level-0">About</option>
        <option value="65" class="level-0">Contact</option>
        <option value="2" class="level-0">Sample Page</option>
        <option value="60" class="level-0">Staff</option>
    </select>
</div>

<div class="image-link link-posts1">
    <select onchange="javascript:dropdown_post_js(this)" id="wp_accordion_images[20110630022615][post_id]" name="wp_accordion_images[20110630022615][post_id]">
        <option value="http://localhost/tomatopie/?p=1" class="level-0">Hello world!</option>
    </select>
</div>

<div class="image-link link-custom1">
    <input type="text" size="25" value="" name="wp_accordion_images[20110630022615][image_links_to]">
</div>

***然后它重复四次:#1 变为 2..3...4(此时最多为 4)。

我有能力 label div.classes、select #ids 和选项类。 但是,我想要做的是基于从 div.link-posttypes 中选择的选项,我想reveal.link-pages(如果选择了页面)或.link-posts(如果选择了帖子)和。所有其他人的链接自定义(默认除外)。

因此,屏幕上应该只有初始 div,一旦用户选择了一个项目,就会出现相应的 div。

我从未在 jQuery 或 javascript 中开发过任何东西。 这是我的处女航。 任何帮助将不胜感激!

***此外,这将通过外部 js 文件加载。

这是有效的最终答案:

jQuery(document).ready(function($) {

$(".link-posttypes select").change(function(){
   var selectedVal = $(":selected",this).val();

   if(selectedVal=="post"){
        $(this).parent().nextAll(".link-pages").hide();
        $(this).parent().nextAll(".link-posts").slideDown('slow');
        $(this).parent().nextAll(".link-custom").hide();
   }else if(selectedVal=="page"){
        $(this).parent().nextAll(".link-pages").slideDown('slow');
        $(this).parent().nextAll(".link-posts").hide();
        $(this).parent().nextAll(".link-custom").hide();
   }else if(selectedVal!=""){
        $(this).parent().nextAll(".link-pages").hide();
        $(this).parent().nextAll(".link-posts").hide();
        $(this).parent().next().nextAll(".link-custom").slideDown('slow');
   }else{
        $(this).parent().nextAll(".link-pages").hide();
        $(this).parent().nextAll(".link-posts").hide();
        $(this).parent().nextAll(".link-custom").hide();
   }
});
});

jQuery(document).ready(function($) {

$(".image-content select").change(function(){
   var selectedVal = $(":selected",this).val();

   if(selectedVal=="content-limit"){
        $(this).parent().next().nextAll(".content-limit-chars").slideDown('slow');
        $(this).parent().nextAll(".content-custom").hide();
   }else if(selectedVal=="custom-content"){
        $(this).parent().nextAll(".content-limit-chars").hide();
        $(this).parent().next().nextAll(".content-custom").slideDown('slow');
   }
});
});

谢谢你的帮助!

假设您正在输出正确的 ID,您可以执行以下操作(注意我替换了 id):

  $(window).load(function(){
    // hide all the divs except the posttypes
    $('.image-link').not('.link-posttypes').hide();
    $('#wp_accordion_images_20110630022615_post_type').change(function() {
        var divSelector = '.link-' + $(this).val();
        $('.image-link').not('.link-posttypes').hide();
        $(divSelector).show();

    });
  });

另外,请考虑更改您的options ,如下所示:

<option value="posts" class="post-type">Post</option>
<option value="pages" class="post-type">Page</option>
<option value="menu_items" class="post-type">Menu Items</option>        
<option value="wps_employees" class="post-type">Employees</option>
<option value="custom">Custom Link</option>   

这是一个jsfiddle: http://jsfiddle.net/JrPeR/

有我可以理解的 jquery 脚本

jQuery(document).ready(function($) {
    $(".link-pages").hide();
    $(".link-posts").hide();
    $(".link-custom").hide();
    $(".link-posttypes select").change(function(){
       var selectedVal = $(":selected",this).val();
       if(selectedVal=="post"){
            $(".link-pages").hide();
            $(".link-posts").show();
            $(".link-custom").hide();
       }else if(selectedVal=="page"){
            $(".link-pages").show();
            $(".link-posts").hide();
            $(".link-custom").hide();
       }else if(selectedVal!=""){
            $(".link-pages").hide();
            $(".link-posts").hide();
            $(".link-custom").show();
       }else{
            $(".link-pages").hide();
            $(".link-posts").hide();
            $(".link-custom").hide();
       }
    });
});

演示在这里 花几分钟时间让你更容易理解。 玩得开心。

http://jsfiddle.net/JrPeR/3/

添加了一个条件,因此如果它不是两个变量,则默认为自定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM