0

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

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

选择是用红宝石制作的,在浏览器中它的信息是这样的。

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");
        }
    });
});
4

3 回答 3

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");
            }
        });
    });
于 2012-09-19T12:28:55.957 回答
0

尝试这个:

var list = $('select#relat\\[rond_cat_tipus\\]\\[\\]_all').children();
于 2012-09-19T11:19:30.190 回答
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();
    ...
});
于 2012-09-19T11:22:50.670 回答