2016-07-19 27 views
3

我有以下代碼的正常工作:使用問題.hide()從數組傳遞變量時

$(function mvp() { 
    var theMvp = ['#mvpWtd', '#mvpStd']; 
    $.each(theMvp, function (index, value) { 
     $(value + ' .budTySales').hide(); 
     $(value + ' .lySales').hide(); 
     $(value + ' .budReceipts').hide(); 
     $(value + ' .lyReceipts').hide(); 
    }); 
}) 

根據jQuery文檔我應該能夠用逗號傳遞多個元件代替,隨後一行一行地做(少代碼!)。我試圖改變我的代碼到下方,但它失敗...

$(function mvp() { 
    var theMvp = ['#mvpWtd', '#mvpStd']; 
    $.each(theMvp, function (index, value) { 
     $(value + ' .budTySales',value + ' .lySales',value + ' .budReceipts',value + ' .lyReceipts').hide(); 
    }); 
}) 
+7

您錯誤地串接字符串在這裏。逗號應該是前一個字符串的一部分。無論如何,您最好使用'$(theMvp.toString())。find('。budTySales,.lySales,.budReceipts,.lyReceipts')。hide();'或者更好的**只需使用特定的普通類** ... –

+0

謝謝,非常感謝 – sm1l3y

回答

6

這條線:

$(value + ' .budTySales',value + ' .lySales',value + ' .budReceipts',value + ' .lyReceipts').hide(); 

應該是:

$(value + ' .budTySales,' + value + ' .lySales,' + value + ' .budReceipts,' + value + ' .lyReceipts').hide(); 

注意,逗號是引號內。這是因爲jQuery希望將單個參數傳遞給它,而不是多個,這就是你正在做的。

2

正如評論中所述,逗號應該是字符串的一部分。

$(value + ' .budTySales, ' + value + ' .lySales, ' + value + ' .budReceipts, '+ value + ' .lyReceipts').hide();應該工作