如何选择具有特殊大括号的属性的元素[重复]

Posted

技术标签:

【中文标题】如何选择具有特殊大括号的属性的元素[重复]【英文标题】:how do i select a element with a attribute having special curly brackets [duplicate] 【发布时间】:2021-06-07 08:42:12 【问题描述】:

我有一个 html 按钮,如下所示。它会有一个属性

<button class="first-button" data-content='8C2E25C4-5E4F-484C-97D0-F42305F30E19'> my content</button>

单击此按钮时,我需要获取该属性并从中制作一个属性选择器,用于具有不同类和相同属性的另一个元素

<button class="second-button" data-content='8C2E25C4-5E4F-484C-97D0-F42305F30E19'> my content</button>

我尝试了 jquery 属性选择器,但没有成功

$('data-content=8C2E25C4-5E4F-484C-97D0-F42305F30E19')

我愿意接受 JS 或 jQuery 修复

【问题讨论】:

为什么重新打开?这是一个非常常见的重复。 @RoryMcCrossan 受骗的是如何选择数据属性,而不是如何选择带有特殊字符的数据属性。我也有一个比我能找到的骗子更新的答案 如果您只是将值括在引号中,则没有特殊字符,这就是欺骗中的解决方案所解释的。 编辑 - 下面@Swati 的回答确实如此。 【参考方案1】:

引号的替代品是jQuery.escapeSelector 或CSS.escape

const data = CSS.escape("8C2E25C4-5E4F-484C-97D0-F42305F30E19")
$(`button[data-content=$data]`).addClass("active")
.active 
  color: red
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="first-button" data-content='8C2E25C4-5E4F-484C-97D0-F42305F30E19'> my content</button>

<button class="second-button" data-content='8C2E25C4-5E4F-484C-97D0-F42305F30E19'> my content</button>

【讨论】:

【参考方案2】:

对于attribute selectors,您需要[],并且在选择器中需要一个通配符运算符,因为该值具有

$('[data-content*=8C2E25C4-5E4F-484C-97D0-F42305F30E19]').css('color','red')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="first-button" data-content='8C2E25C4-5E4F-484C-97D0-F42305F30E19'> my content</button>

【讨论】:

【参考方案3】:

您可以尝试如下:

$('button[data-content="8C2E25C4-5E4F-484C-97D0-F42305F30E19"]').addClass("active")
.active 
  color: red
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="first-button" data-content='8C2E25C4-5E4F-484C-97D0-F42305F30E19'> my content</button>

<button class="second-button" data-content='8C2E25C4-5E4F-484C-97D0-F42305F30E19'> my content</button>

【讨论】:

以上是关于如何选择具有特殊大括号的属性的元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何选择具有 2 个类的元素 [重复]

如何使用 CSS 选择器访问具有此形状的元素 [重复]

如何编写 CSS 选择器选择不具有特定属性的元素?

如何根据前面定义的变量选择器选择具有属性的元素?

基于使用jQuery的属性的条件jQuery选择器[重复]

如何使用属性选择器