从数组传递变量时使用.hide()的问题

时间:2016-07-19 18:38:43

标签: javascript jquery

我有以下代码可以正常工作:

 $(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();
    });
})

2 个答案:

答案 0 :(得分:6)

这一行:

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

应该是:

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

请注意,逗号在引号内。这是因为jQuery需要将一个参数传递给它,而不是多个,这就是你正在做的事情。

答案 1 :(得分:2)

如评论中所述,逗号应该是字符串的一部分。

$(value + ' .budTySales, ' + value + ' .lySales, ' + value + ' .budReceipts, '+ value + ' .lyReceipts').hide();应该有效