1

我需要从没有类名“隐藏”的类名中创建数组:

<div id="part2">
<div class="address hidden">address</div>
<div class="floors">floors</div>
<div class="postcode"> </div>
<div class="city hidden"> </div>
</div>

我可以遍历 div 并按如下方式制作数组,但我只需要没有隐藏类的 div——在这种情况下只有“楼层”和“邮政编码”。

 var list_div_class = function() {
  var myarray = [];
  $('#part2').children().each(
      function(index) {
  var myclass = $(this).attr("class");
   myarray[index] = myclass;
        });
     return myarray;
    }

var arr_divs = list_div_class();
  alert (arr_divs);  // there is hidden listed but it's ok 
4

4 回答 4

2

您可以在一行中使用选择器执行此操作:

var arr_divs = $('#part2 div:not(".hidden")'); //this will be the array of divs without the class .hidden 
于 2012-07-28T03:11:52.810 回答
0

试试这个......这是一个工作小提琴链接http://jsfiddle.net/n3Xjr/

var list_div_class = function() {
  var myarray = [];

  $('#part2').children().not('.hidden').each(function(index) {
    myarray[index] = $(this).attr("class");
  });

  return myarray;
}

var arr_divs = list_div_class();
alert(arr_divs);​
于 2012-07-28T03:07:55.527 回答
0

像这样:

$(':not(.hidden)').each { ... }
于 2012-07-28T03:08:49.737 回答
0

你也可以.map()使用

var arr = [];
arr = $('#part2').children().not('.hidden').map(function(i,e) {
    return $(e).attr('class');
}).get().join(', ');

结果:

floors, postcode

参考现场演示

于 2012-07-28T03:28:49.937 回答