Jquery 带单引号或双引号的选择器基础数据属性

Jquery selector base data attribute with single quote or two quotes

我有一个具有多个数据属性的 html 元素:

 <div class="passenger-information clearfix" data-index="0"   data-class="passenger-info-wrapper" data-age-classify="Adult"></div>

我将使用 jquery 选择器,如下所示:

1)$('[data-age-classify="Adult"]')
2)$("[data-age-classify='َAdult']")
3)$("[data-class='passenger-info-wrapper']")

问题是第一个选择器尽管有第二个和第三个选择器 return 什么也没有。

Attributes are placed inside the start tag, and consist of a name and a value, separated by an = character. The attribute value can remain unquoted if it doesn’t contain spaces or any of " ' ` = < or >. Otherwise, it has to be quoted using either single or double quotes. The value, along with the = character, can be omitted altogether if the value is the empty string.

所有情况都应该适用于您的示例。查看这篇文章以获得对该主题的更多理解:https://mathiasbynens.be/notes/unquoted-attribute-values

它按预期工作。 请检查您的浏览器是否有任何控制台错误,或者 jquery 库是否未正确导入。

alert($('[data-age-classify="Adult"]'));
alert($("[data-age-classify='َAdult']"));
alert($("[data-class='passenger-info-wrapper']"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="passenger-information clearfix" data-index="0"   data-class="passenger-info-wrapper" data-age-classify="Adult"></div>

它们都有效,但第二个你不需要 '

看起来像:$("[data-age-classify=Adult]"

console.log($('[data-age-classify="Adult"]').html())
console.log($("[data-age-classify=Adult]").html())
console.log($("[data-class='passenger-info-wrapper']").html())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="passenger-information clearfix" data-index="0"   data-class="passenger-info-wrapper" data-age-classify="Adult">s</div>