1

我有以下 div :

制造商[1]、制造商[2]、制造商[3]、...等...

我试图创建一个关闭许多 div 的 javascritp for 循环,但经过一番搜索后,我发现这是不可能的。

关闭 = 隐藏(显示:无)

所以我需要帮助编写一个 jquery 简单代码来做到这一点:

    function hideAllManufacturers(manufacturersID)
{
    var manufacturer = [1,2,3,];

    $.each(manufacturer, function(index, val) {
        $('.manufacturer['+val+']').hide();
    });


}

它确实有效 - 但是没有显示之后的下一个代码。所以这可能是我写的一个问题..

结尾我有一个逗号是不是很糟糕?

需要你的帮助!

4

2 回答 2

4

您可以像这样使用通配符

$('[class^="manufacturer"]').hide();

这将隐藏所有以制造商开头的类的元素,因此将隐藏 .manufacturer[1]、.manufacturer[2] 等。

这也使前进变得更容易,因为如果您以后添加新制造商,则无需在 jQuery 中更新制造商数组。它将立即使用通配符节省时间和不必要的代码来捕获新的。

于 2012-12-29T10:28:18.393 回答
2

好吧,因为它[]是 JQuery 使用的 CSS 选择器中的一个元字符,所以你必须用两个反斜杠转义它,\\所以它会是这样的

$(".manufacturer\\[" + val + "\\]").hide();

参考:

http://api.jquery.com/category/selectors/

http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier

另一件不能让它工作的事情是因为你的数组中有额外的逗号

var manufacturer = [1,2,3,]; //remove the last comma

它必须是这样的

var manufacturer = [1,2,3];
于 2012-12-29T10:30:48.347 回答