2011-07-23 117 views
0

我試圖隱藏並顯示基於它的類的選項。任何人都可以幫助我明白爲什麼這不起作用?jquery如果語句

  $(document).ready(function(){ 
       $("#product_boutique").val(<? echo $rowO->product_boutique ?>); 
       $("#product_category").val('<? echo $rowO->category ?>'); 
       $("#product_sub_category").val('<? echo $rowO->category ?>'); 
       var select = $("#product_category").val('<? echo $rowO->category; ?>').val(); 

       if (select == 'womenswear'){ 
         $('.mens').hide(); 
         $('.womens').show(); 
       } 
       if (select == 'menswear'){ 
         $('.mens').show(); 
         $('.womens').hide(); 
       } 

      }); 
+0

你知道,當你有你的問題的答覆你能接受一個答案? – ChristopheCVB

回答

3
var select = $("#product_sub_category").val('<? echo $rowO->category; ?>'); 
alert(typeof select); // object 

由於.VAL( '...')返回一個jquery對象。

嘗試

var select = $("#product_sub_category").val('<? echo $rowO->category; ?>').val(); 

通過這樣做,你的值設置爲#product_sub_category,你就檢索到的變量選擇。

2

當您將參數傳遞給.val()時,與您的情況一樣,您正在設置該值。要獲取當前值,必須調用不帶參數的.val()。

$("#product_sub_category").val('<? echo $rowO->category; ?>'); 
var select = $("#product_sub_category").val(); 
3

jQuery val(value)方法返回一個jQuery對象,而不是一個字符串。如果你改變:

var select = $("#product_sub_category").val('<? echo $rowO->category; ?>'); 

到:

var select = $("#product_sub_category").val('<? echo $rowO->category; ?>').val(); 

它應該工作的罰款。因爲val(value)方法返回一個jQuery對象,所以可以像上面所做的那樣將其與其他jQuery方法鏈接起來,因此在同一行中調用val的2個方法可以正常工作。

+0

downvote的任何理由? –

+0

一分鐘後,兩個相同的答案... – ChristopheCVB

+0

當我發佈這個,你沒有編輯你的答案來顯示實際的解決方案,你只有'alert(typeof select);'部分。 –

1

您有:

if (select == 'womenswear'){ 
    $('.mens').hide(); 
    $('.womens').show(); 
} 
if (select == "menswear"){ 
    $('.mens').hide(); 
    $('.womens').show(); 
} 

它應該是:

if (select == 'womenswear'){ 
    $('.mens').hide(); 
    $('.womens').show(); 
} 
if (select == "menswear"){ 
    $('.mens').show(); 
    $('.womens').hide(); 
}