当前位置: 首页 > 知识库问答 >
问题:

带有dataset的jQuery元素

田瀚
2023-03-14

我想根据元素的数据集过滤元素。我创建了一个小提琴来显示我所处的位置:这里,但如你所见,当我选择“红色”时,它只是隐藏了“红色”项,而不是其他项。就像“黄色”一样,它不会做任何事情。

下面是脚本:

// Filter by color
$(document).on('change', 'input', function(){
  const color_value = this.value;
  let $products = $('li').hide();
  let $filtered = $products.filter((i, el) => el.dataset.color !== '' && el.dataset.color.indexOf(`-${color_value}-`));
  $filtered.show();
});

多谢!

共有1个答案

龙德义
2023-03-14

您可以使用indexof()代替include()

更改:

el.dataset.color.indexOf(`-${color_value}-`)

致:

el.dataset.color.includes(`-${color_value}-`)

null

$(document).on('change', 'input', function(){
  const color_value = this.value;
  let $products = $('li').hide();
  let $filtered = $products.filter((i, el) => el.dataset.color !== '' && el.dataset.color.includes(`-${color_value}-`));
  $filtered.show();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" value="red" id="red" name="color">
<label for="red">Red</label>
<input type="radio" value="blue" id="blue" name="color">
<label for="blue">Blue</label>
<input type="radio" value="purple" id="purple" name="color">
<label for="purple">purple</label>
<input type="radio" value="yellow" id="yellow" name="color">
<label for="yellow">yellow</label>

<ul>
  <li data-color="-red--yellow-">
    Red and yellow thing
  </li>
  <li data-color="-blue-">
    Blue thing
  </li>
  <li data-color="-purple--red-">
    Purple and red thing
  </li>
</ul>
 类似资料:
  • 问题内容: 您能否举一个使用jquery读取jsonp请求的非常简单的示例?我就是无法正常工作。 问题答案: 这是工作示例: 注意所请求URL的末尾。这表明我们要使用JSONP。删除它,将使用原始的JSON请求。由于相同的原产地政策而失败。 您可以在JQuery网站上找到更多信息和示例:http : //api.jquery.com/jQuery.getJSON/

  • 问题内容: 我的要求是,当用户在可能也会动态添加的输入字段之一中输入一些字符(最少3个)时,显示几个选项。 由于数据量巨大,我一开始无法在页面加载时加载数据。有一个ajax调用来获取经过过滤的数据。 我得到的问题是第2行的页面加载错误。那么,请问以下代码有什么问题吗? 问题答案: 如何使用另一种方法:创建输入时初始化自动完成功能: jsFiddle与AJAX

  • 我有以下,每个都有几个元素: 我打算让变量包含、或类型的元素。我尝试将类型的元素添加到中,如下所示: 但是IDE不允许我这样做,它说: 我是否使用了?我如何解决这个问题?

  • 问题内容: 我试图使用ES6 Promise通过jQuery发出发布请求: 我有一个功能: 我这样称呼它: 我的服务器正在返回预期的响应,请求主体为JSON格式,但我的控制台输出为: 好:未定义 为什么我没有得到返回的数据? 感谢任何人/所有人的帮助。 -更新编辑- 我已将我的js减少为: 我仍然未定义为输出。如果在“网络”选项卡中打开请求,则可以看到带有正确数据的响应对象。发出了请求,我的服务器

  • 问题内容: 给定以下类和控制器操作方法: 以及以下形式: 我可以同时更新School实例和School的Address成员。这真是太好了!谢谢ASP.NET MVC团队! 但是,如何使用jQuery选择下拉列表,以便可以预先填写呢?我意识到我可以在服务器端进行操作,但是页面上还会有其他影响列表的动态元素。 以下是我到目前为止所拥有的,并且由于选择器似乎与ID不匹配而无法正常工作: 问题答案: 在每

  • 问题内容: 在命令提示符下运行项目时,出现以下错误 我收到以下错误 来源:com / javavids / jaxb / sitemap / UPM / Test.java 来源:com / javavids / jaxb / sitemap / UPM / ObjectFactory.java 来源:com / javavids / jaxb / sitemap / main / Main.ja