首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery每个函数$(这)混淆

jQuery每个函数$(这)混淆
EN

Stack Overflow用户
提问于 2013-11-18 07:03:36
回答 2查看 589关注 0票数 1

EXPLANATION:我有两个元素,里面有同样多的选项。第一个选项包含一系列选项,其值为db-id。他们是父母。

第二个元素填充了一个选项列表,这些选项的值为父db-id,其html id属性为它们自己的db-id。这些是儿童类别。

问题:我希望所有的子猫都被隐藏起来,并且在任何父类别的每个选择事件上,相对的子对象将变得可见,使用与其父类值相同的值。

我的尝试:为此目的,我编写了以下脚本,但不起作用。它将一个单击事件附加到每个父类别,如果该事件的值与单击元素的值匹配,则该事件触发一个函数,该函数负责打开任何子猫的可见性。

HTML代码:

代码语言:javascript
运行
复制
<select multiple  name="branch" >
<option selected="" value="false">Please Select a Branch</option>
<option class="branch-item" value="0">Computer</option>
<option class="branch-item" value="1">Automobile</option>
<option class="branch-item" value="4">Technical</option>
</select>   

<select multiple class="form-option" name="subbranch" >
<option class="subbranch-item" style="display: none;" value="1">Software</option>
<option class="subbranch-item" style="display: none;" value="1">Hardware</option>
<option class="subbranch-item" style="display: none;" value="7">Mechanics</option>
<option class="subbranch-item" style="display: none;" value="7">Welding</option>   
</select>

JQUERY代码:

代码语言:javascript
运行
复制
<script type="text/javascript">
    $(document).ready(function(e) {

        $(".branche-item").click(function(){
            var values = $(this).val();
            $('.subbranch-item').parent().each(function(element, value) {
                if(value == values)
                {
                    element.show(); 
                }
            });
        });

    });
</script>

我感谢您对jquery代码的调试提供任何帮助,谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-18 07:11:04

试一试

代码语言:javascript
运行
复制
var $sub = $('select[name="subbranch"]');
var sub = $.trim($sub.html());

$('select[name="branch"]').change(function () {
    var filter = $(this).children('option:selected').map(function () {
        return '[value="' + this.value + '"]'
    }).get().join();

    $sub.empty().append($(sub).filter(filter))
}).change()

演示:小提琴

票数 1
EN

Stack Overflow用户

发布于 2013-11-18 07:47:13

代码语言:javascript
运行
复制
$('select[name="branch"]').change(function () {
    var $branch = $(this).children(':selected'),
        $subbranch = $('[name="subbranch"]').children('option');

    $subbranch.hide()

    $branch.each(function () {
        var branch = $(this).val();
        $subbranch.each(function () {
            if ($(this).val() == branch) {
                $(this).show();
            }
        });
    });
}).change();

http://jsfiddle.net/F9777/3/

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

https://stackoverflow.com/questions/20041961

复制
相关文章

相似问题

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