-1

DIV我有一个如下的 id数组,CSS它们都在下面的一个类中display:none

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

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

下面是我所拥有的。循环迭代工作正常,但是其中的各个DIVspaintDivs仍未显示。

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

我什至尝试通过在 CSS 中创建另一个名为的类,showThis然后在下面设置display:block并尝试,但仍然没有成功。

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

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

4

5 回答 5

3

您正在使用.css. 使用如下设置器,

jQuery.each(paintDivs, function(idx, valIs){
  $('#' + valIs).css('display', 'block');
});
于 2012-10-22T20:24:31.037 回答
3

您可以简单地使用show()

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

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

$.each(paintDivs, function(idx, valIs) {
    $("#" + valIs).css("display", "block");
});
于 2012-10-22T20:23:45.127 回答
2

这一行:

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

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

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

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

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

或者,如果你想变得花哨,你可以:

$("#" + valIs).fadeIn();
于 2012-10-22T20:26:00.200 回答
2

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

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

文档

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

返回 propertyName 的值

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

将 propertyName 设置为 value

于 2012-10-22T20:27:20.757 回答
1

无需迭代,您可以在选择器中使用数组连接

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

这将构建您的选择器

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

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

于 2012-10-22T21:03:57.767 回答