jquery divs在一个数组中显示

时间:2012-10-22 20:22:29

标签: jquery

我有一系列DIV ID,如下所示CSS他们都在display:none以下的一个班级。

var paintDivs = ["div_2ndSubCategoryID","div_3rdSubCategoryID","div_4thSubCategoryID","div_ColorNameID","div_ColorNoID","div_PaintSizeID"];

长话短说,我现在想要的是显示DIV中的所有paintDivs

以下是我所拥有的。 循环迭代工作正常,但DIV中的单个paintDivs仍未显示。

jQuery.each(paintDivs, function(idx, valIs){
  $('#' + valIs).css('display');
});

我甚至尝试在CSS中创建另一个名为showThis并设置display:block的类并尝试在下面,仍然没有做到这一点。

jQuery.each(paintDivs, function(idx, valIs){
  $('#' + valIs).attr('class','showThis');
});

我做错了什么?任何见解将不胜感激。

5 个答案:

答案 0 :(得分:3)

您可以简单地使用show()

$.each(paintDivs, function(idx, valIs) {
    $("#" + valIs).show();
});

否则,要正确更改CSS样式,请使用css()

$.each(paintDivs, function(idx, valIs) {
    $("#" + valIs).css("display", "block");
});

答案 1 :(得分:3)

您正在使用.css的getter函数。使用下面的setter,

jQuery.each(paintDivs, function(idx, valIs){
  $('#' + valIs).css('display', 'block');
});

答案 2 :(得分:2)

这一行:

  $('#' + valIs).css('display');

获取display属性的值,你想设置它,这意味着你应该这样做来实际设置它:

  $('#' + valIs).css('display','block');

或者更简单地说,只需使用:

  $('#' + valIs).show();

或者,如果你想获得幻想,你可以:

$("#" + valIs).fadeIn();

答案 3 :(得分:2)

假设'#+ ValIs'是您想要的ID,将显示从none更改为normal就像这样简单:

jQuery.each(paintDivs, function(idx, valIs){
  $('#' + valIs).css('display','normal');
});

来自documentation

$('#example').css(propertyName) 

返回propertyName

的值
$('#example').css(propertyName, value)

将propertyName设置为值

答案 4 :(得分:1)

没有迭代,你可以在选择器中使用数组连接

var divs = ['test1','test3','test5'];
$('#' + divs.join(',#')).show();​

将您的选择器构建为

$('#test1,#test3,#test5')

http://jsfiddle.net/wirey00/JrZBJ/