我有以下div:
制造商[1],制造商[2],制造商[3],......等......
我试图创建一个关闭许多div的javascritp for循环,但经过一些搜索后我注意到它是不可能的。
关闭=隐藏(显示:无)
所以我需要帮助编写一个jquery简单代码来做到这一点:
function hideAllManufacturers(manufacturersID)
{
var manufacturer = [1,2,3,];
$.each(manufacturer, function(index, val) {
$('.manufacturer['+val+']').hide();
});
}
它确实有效 - 但未显示之后的下一个代码。所以它可能是我写的一个问题..
最后我有一个逗号是不是很糟糕?
需要你的帮助!
答案 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];