为什么这个javascript无法运行 - 如果选择框

时间:2012-11-13 17:10:13

标签: javascript select

我的网站上有这个代码。这个想法是在选择特定的选择框值时隐藏特定的类。

这是我的代码

$(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 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

您首先不需要循环

将你的select附加到change()事件处理程序,应该是它..

$(document).ready(function(){

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

     }).change()
});

答案 2 :(得分:0)

如果您只想在值更改时隐藏“.mar”类并且等于“营销”,请尝试

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

演示here

答案 3 :(得分:0)

$("#input_3_1").change(function(){
  if ($("#input_3_1").val()=='Marketing'){
    $(".mar").hide();
  }
});