需要使用jquery对项列表进行分组

时间:2010-02-13 04:59:54

标签: jquery

我有一个项目列表,其中包括一个人和他们工作的公司。我需要能够按公司对列表进行分组,然后显示为该公司工作的所有人员。

例如:

<div class="name"> John Doe </div>
<div class="company"> ABC Company </div>
<div class="name"> Jane Smith</div>
<div class="company"> ABC Company </div>

<div class="name"> Bill Williams </div>
<div class="company"> XYZ Company </div>
<div class="name"> Beth Wilson </div>
<div class="company"> XYZ Company </div>

我希望输出显示:

ABC公司   约翰·多伊   简史密斯

XYZ公司    贝丝威尔逊    比尔威廉姆斯

有关如何对该数据进行分组的任何建议

感谢。

1 个答案:

答案 0 :(得分:3)

应该这样做..

  var group = {} // this will keep our entire structure..

  $('.company').each( // for each company element
  function(){
    // grab the name of the company
    var name = $(this).text(); 
    // if it has not been inserted in the group (first time we encounter this company)
    if (!(name in group)) 
      group[name] = []; // we create the company key, and relate it to an array that will hold the persons

    // grab the persons name (the preceding one)
    var person = $(this).prev('.name').text(); 
    // add him to the company list of persons .. 
    group[name].push(person);
  }
  )
    // check for ABC company 
    alert(group[' ABC Company ']);