0

Rails アプリケーションを開発しており、Select のリストを動的に変更する必要があります。これは、すべての子にクラス タグを追加する JavaScript によって行う必要があります。

問題は、Select の正しい ID が見つからないようです。

選択は ruby​​ で行い、ブラウザではその情報はこれです。

HTML での選択

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

ジャバスクリプトはこれ

$(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 に答える