0

私は自分のサイトにこのコードを持っています。特定の選択ボックスの値が選択されたときに特定のクラスを非表示にするという考え方です。

これは私のコードです

$(document).ready(function(){
var txt = 'Marketing';
$("div.ginput_container select#input_3_1 option").each(function(){
    if($(this).val()==txt){
        $('.mar').hide();    
    }

   });
});

私が得ている結果は、ページがロードされるとすぐに.marクラスが非表示になることです。エラーが表示されないので、試してみました

var num = 1

しかし、私は同じ問題を抱えています。

4

4 に答える 4

2
$(document).ready(function() {
    var txt = 'Marketing';
    $("#input_3_1").change(function () {
        if ( this.value == txt ) $('.mar').hide();
    });
});

これがフィドルです:http://jsfiddle.net/9Cyxh/


$('.mar')別のオプションが選択されたときに表示する場合は、toggle代わりに次を使用します。

$('.mar').toggle( this.value != txt );

これがフィドルです:http://jsfiddle.net/9Cyxh/1/


これをページの読み込み時 (オプションが手動で選択される前) にも実行する場合は、変更イベントをトリガーします。

$(document).ready(function() {
    var txt = 'Marketing';
    $("#input_3_1").change(function () {
        $('.mar').toggle( this.value != txt );
    }).change();
});​

これがフィドルです:http://jsfiddle.net/9Cyxh/2/

于 2012-11-13T17:17:25.687 に答える
1

そもそもループはいらない

select を change() イベント ハンドラーにアタッチすると、それで問題ありません。

$(document).ready(function(){

     $("select#input_3_1").on('change', function() {
         var txt = 'Marketing';
         if(this.value === txt){
             $('.mar').hide();    
        };

     }).change()
});
于 2012-11-13T17:16:17.840 に答える
0
$("#input_3_1").change(function(){
  if ($("#input_3_1").val()=='Marketing'){
    $(".mar").hide();
  }
});
于 2012-11-13T17:37:47.100 に答える
0

値が変更され、「Marketing」に等しいときに「.mar」クラスのみを非表示にする場合は、試してください

$("#input_3_1").change( function() {
    if( $(this).val().toUpperCase() === "MARKETING" ) {
        $(".mar").hide();
    }
});

デモはこちら

于 2012-11-13T17:15:01.227 に答える