【问题标题】:Show/Hide div based on select value using a child ref with dynamically updated choices using jquery基于选择值显示/隐藏 div 使用子 ref 使用 jquery 动态更新选择
【发布时间】:2012-12-03 15:57:20
【问题描述】:

这些选择选项通过 wordpress 后端以及以下 div 标签进行更改。

我需要的是让相应的 div 标记仅在选择框位于该选项上时显示它的子编号。

代码示例:

<form>
    <select class="select" name="SELECT_Mood_30">
        <option value="0"></option>
        <option value="hap">Happy</option>
        <option value="sad">Sadness</option>
        <option value="ang">Angry</option>
        <option value="gru">Grumpy</option>
    </select>
</form>

<ul id="show-these">
    <li></li>
    <li>Happy huh?</li>
    <li>Why so sad?</li>
    <li>Everything will be ok!</li>
    <li>Cheer up!</li>​​​​​​​​​​​​​​​​​​​​​​​​
</ul>

所以基本上我希望 jquery 能够知道选择了哪个数字孩子并在 li ID“show-these”中显示相同的数字孩子。

【问题讨论】:

  • 您的 HTML 无效。您不能将 &lt;div&gt; 作为 &lt;li&gt; 的父级。
  • ...但除此之外,WhatHaveYouTried.com

标签: javascript jquery html css forms


【解决方案1】:

JS

var $ul = $('#show-these');
$ul.find('li').hide();

$('.select').on('change', function(){
    var index = $(this).find('option:selected').index();
    var $ul = $('#show-these');
    $ul.find('li').hide();
    $ul.find('li').eq(index).show();

});​

HTML

<div id="show-these">
    <li></li>
    <li>Happy huh?</li>
    <li>Why so sad?</li>
    <li>Everything will be ok!</li>
    <li>Cheer up!</li>​​​​​​​​​​​​​​​​​​​​​​​​
</div>

Check Fiddle

【讨论】:

  • 看起来它确实在小提琴中工作..无法弄清楚为什么它在我的网站上不起作用..
【解决方案2】:

猜猜这会有所帮助:

<select class="select" onchange="update(this.value)" name="SELECT_Mood_30">
    <option value="0"></option>
    <option value="hap">Happy</option>
    <option value="sad">Sadness</option>
    <option value="ang">Angry</option>
    <option value="gru">Grumpy</option>
</select>
<div id="show-these">
    <li></li>
    <li>Happy huh?</li>
    <li>Why so sad?</li>
    <li>Everything will be ok!</li>
    <li>Cheer up!</li>
</div>


<script type="text/javascript">
    function update(value){
        var option = $('.select').find('option[value="'+value+'"]');
        var index = $('.select').children().index(option);
        $('#show-these').children().hide();
        $($('#show-these').children()[index]).show();
    }
</script>

【讨论】:

  • 我无权添加onchange="update(this.value)" 任何其他方式吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
相关资源
最近更新 更多