jQuery 合并数据属性的值并过滤内容

jQuery merging values from data attributes and filtering content

我有这个问题我一个人无法解决,我需要寻求你的帮助。

基本上我想要两个面板,第一个是主过滤器,另一个是某种修饰符。

<section class="primary-panel">
  <p>Primary panel</p>
  <ul class="primary-panel-wrapper">
    <li class="primary-panel-item" data-foo="A">foo A</li>
    <li class="primary-panel-item" data-foo="B">foo B</li>
    <li class="primary-panel-item" data-foo="C">foo C</li>
  </ul>
</section>

<section class="secondary-panel">
  <p>Secondary panel</p>
  <ul class="secondary-panel-wrapper">
    <li class="secondary-panel-item" data-bar="A">bar A</li>
    <li class="secondary-panel-item" data-bar="B">bar B</li>
    <li class="secondary-panel-item" data-bar="C">bar C</li>
  </ul>
</section>

所以当我选择 “foo A/B or C” 时,脚本会过滤那些项目,这很好。

但是当我选择“修饰符”时(bar A/B or C)我想将这些属性合并在一起并显示修改后的版本,这样我就可以得到这样的东西“foobar AA/AB/AC/BA/BB/BC/CA/CB/CC”

所以基本上当我选择 “foo A” 然后 “bar A/B/C” 我想得到 “foobar AA/AB/AC”, “foo B” -> ”foobar BA/BB/BC”“foo C” -> “foobar CA/CB/CC” 等等。

我有点做到了这一点,但无论我之前选择什么,我总是得到 AA/AB/AC (foo A/B or C),这让我很难受。

如果您知道如何解决它,请帮助我,我将不胜感激。

在这里你会找到完整的 fiddle:

http://jsfiddle.net/c0drbs2u/33/

提前致谢。

解决方案:

您的代码中有一个非常小的错误:)

var foobar = $(".showcase-overview .item").attr('data-foo') + $e.attr('data-bar')

// Needed to be

const foobar = $(".primary-panel-item.active").attr('data-foo') + $e.attr('data-bar')

就是这样!

Fiddle:

这是 Fiddle 的修复:http://jsfiddle.net/c0drbs2u/47/