0

私には、基本的に、フォーマット、地域、人口統計、興味の4つのレベルのフィルターがあります。

<div class="form-div">
  <input type="checkbox" data-filter="i-newspaper">
  <input type="checkbox" data-filter="i-magazine">
</div>

<div class="form-div">
  <input type="checkbox" data-filter="i-northland">
  <input type="checkbox" data-filter="i-southland">
</div>

<div class="form-div">
  <select>
    <option value="4" data-filter="i-digital">Digital</option>
    <option value="1" data-filter="i-manufacturing">Manufacturing</option>
    <option value="2" data-filter="i-retail">Retail</option>
  </select>
</div>

<div class="form-div">
  <input data-filter="i-business-and-finance" type="checkbox">
  <input data-filter="i-careers-and-education" type="checkbox">
  <input data-filter="i-design-and-photography" type="checkbox">
</div>

同位体からのフィルターは、上記でチェック/選択されたものに基づいています。

私はこのようなものを使用していました:

var selectors = [];
$(".form-div").find("input:checked, option:selected").each(function(){
  selectors.push('.'+$(this).data('filter'));
});
selectors = selectors.join('');

これは次のようなセレクターを提供していました.i-newspaper.i-magazine.i-northland.i-southland.i-digital.i-design-and-photography(これらがチェック/選択されたフォーム要素であると仮定して)

ただし、それぞれ.form-divが個別のセットであるため、上記の選択で取得したいと思います。

.i-newspaper.i-southland.i-digital.i-design-and-photography,
.i-newspaper.i-northland.i-digital.i-design-and-photography,
.i-magazine.i-southland.i-digital.i-design-and-photography,
.i-magazine.i-northland.i-digital.i-design-and-photography

このようなことはどのように達成されますか?

私の質問がさらに明確にする必要があるかどうか教えてください...

ありがとう

編集

この問題の別の代替ソリューションは、「マルチレベル」フィルタリングです。

したがって、このセットでフィルタリングします。.i-newspaper, .i-magazine

次に、このセットでサブセットをフィルタリングします。i-southland, .i-northland

などなど...

EDIT2 JsFiddle :http: //jsfiddle.net/MkME9/

4

1 に答える 1

1

私の編集を見てください:http: //jsfiddle.net/MkME9/

これはあなたが必要なものですか?

編集 これは正しいですか?

http://jsfiddle.net/MkME9/6/

最後に編集(私は願っています)

http://jsfiddle.net/MkME9/9/

于 2012-09-24T04:22:37.923 に答える