如何在自定义数据属性上使用 jQuery 选择器

jQuery 提供了几个选择器来进行我们要查找的查询。
开始于、结束于和 contains() 选择器也可用于选择指定的字符串。

让我们考虑一下 HTML 列表:

<ul data-group="Books">
  <li data-book="JavaScript"></li>
  <li data-book="CSS"></li>
  <li data-book ="HTML"></li>
</ul>

使用基本查询来获取“Books”下方带有 data-book="JavaScript" 的所有元素并获取“Books”下方带有 data-book!="JavaScript" 的所有元素,我们应该使用以下内容:

$("ul[data-group='Books'] li[data-book='JavaScript']")
$("ul[data-group='Books'] li:not([data-book='JavaScript'])")

我们还可以使用多个元选择器。
如果要做多个查询,建议缓存父选择:

let group = $('ul[data-group="Books"]');

然后你可以寻找以 C 开头的书籍:

let css = $('[data-book^="C"]', group).css('color', '#qc87c9');

或者包含文字脚本的书籍:

let javascript = $('[data-book*="Script"]', group).css('color', '#8ebf42');

我们还可以获取数据属性结尾匹配的元素:

let html = $('[data-book$="ML"]', group).css('color', '#ff0000');

这里是完整的例子。
尝试看看它是如何工作的:

<!DOCTYPE html>
<html>
  <head>
    <title>文档的标题</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script>
  </head>
  <body>
    <ul data-group="Books">
      <li data-book="JavaScript">JavaScript</li>
      <li data-book="CSS">CSS</li>
      <li data-book="HTML">HTML</li>
    </ul>
    <script>
      $(document).ready(function() {
          //stored selector
          let group = $('ul[data-group="Books"]');
          //data-book starts with C
          let css = $('[data-book^="C"]', group).css('color', '#qc87c9');
          //data-book contains script
          let javascript = $('[data-book*="Script"]', group).css('color', '#8ebf42');
          //data-book ends with ML
          let html = $('[data-book$="ML"]', group).css('color', '#ff0000');
        });
    </script>
  </body>
</html>

jQuery 选择器

jQuery 提供了一组工具,用于匹配借用 CSS 1-3 形成的文档中的一组元素。

:contain() 选择包含给定字符串的所有元素。

开始选择器选择具有给定属性的元素,该属性的值恰好以指定的字符串开头。
结尾选择器选择具有给定属性且值恰好以指定字符串结尾的元素。

日期:2020-06-02 22:16:27 来源:oir作者:oir