找到一个选择并向其子项添加一个类

时间:2012-09-19 11:16:27

标签: javascript jquery html jquery-ui

我正在开发一个Rails应用程序,我需要动态更改Select的列表。 我必须通过JavaScript为每个孩子添加一个类标记来做到这一点。

问题是,我似乎无法找到Select的正确ID。

选择是在ruby中进行的,在浏览器中它的信息就是这个。

在HTML中选择

<select id="relat[rond_cat_tipus][]_all" name="relat[rond_cat_tipus][]_all" size="8" multiple="multiple">

Javascript就是这个

$(document).ready(function() {
    var list = $('select#relat[rond_cat_tipus][]_all').children();

    for (var index = 0;index < list.length; index++){
        if(list[index].html.indexOf("C-") > -1){
            list[index].addClass("atu_si");
        }else{
            list[index].addClass("atu_no");
        }
    }

    $(".relat_atu").on("change", function(){
        if($(this).hasClass("relat_atu_yes")){
            $(".atu_si").show();
            $(".atu_no").hide();
        }else{
            $(".atu_si").hide();
            $(".atu_no").show();
        }
    });
});

有关如何解决此问题的任何提示?

修改

非常感谢您的所有答案。多亏了你,我终于找到了解决方案。

如果有人遇到同样的问题我会张贴。

jQuery(function(){
    jQuery("select#relat\\[rond_cat_tipus\\]\\[\\]_all").children().each(function(){
        if(jQuery(this).html().indexOf("C-") > -1){
            jQuery(this).addClass("atu_no");
        }else{
            jQuery(this).addClass("atu_si");
        }
    });
});

3 个答案:

答案 0 :(得分:0)

试试这个:

var list = $('select#relat\\[rond_cat_tipus\\]\\[\\]_all').children();

答案 1 :(得分:0)

@Wiggin这将起作用:

var list = $('select[name="relat[rond_cat_tipus][]_all"]').children();

更新

$('select[name="relat[rond_cat_tipus][]_all"]').each(function(){
    var list = $(this).children();
    ...
});

答案 2 :(得分:0)

jQuery(function(){
        jQuery("select[name]").each(function(){
            if(jQuery(this).attr("name").indexOf("relat[rond_cat_tipus][]_all")>-1){
                jQuery("*", this).addClass("class-added");
            }
        });
    });