使用jQuery来关闭许多div

时间:2012-12-29 10:25:54

标签: javascript jquery html css

我有以下div:

  

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

我试图创建一个关闭许多div的javascritp for循环,但经过一些搜索后我注意到它是不可能的。

关闭=隐藏(显示:无)

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

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

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


}

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

最后我有一个逗号是不是很糟糕?

需要你的帮助!

2 个答案:

答案 0 :(得分:4)

你可以使用像这样的通配符

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

这将隐藏所有元素,其中包含以制造商开头的类,因此会隐藏.manufacturer [1] ,. makeufacturer [2]等。

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

答案 1 :(得分: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];