【问题标题】:Special characters in data attribute values数据属性值中的特殊字符
【发布时间】:2016-05-03 11:03:53
【问题描述】:
我有一个可以找到的 html 内容:
<li data-id="87dhqsiu37fGyqUNA786d6F7=">
注意数据属性值末尾的=符号
如何使用 jQuery 选择器选择它?
我试过这个没有成功:
$("li [data-id=87dhqsiu37fGyqUNA786d6F7]")
$("li [data-id=87dhqsiu37fGyqUNA786d6F7\=]")
$("li [data-id=87dhqsiu37fGyqUNA786d6F7\u003D]")
$("li [data-id=87dhqsiu37fGyqUNA786d6F7=]")
每次都会给我一个语法错误(第一行除外,它只是找不到元素)。
【问题讨论】:
标签:
jquery
jquery-selectors
【解决方案1】:
li [data-id=...] 意味着“任何具有data-id 的... 元素,它是任何<li> 元素的后代”
你想要的是li[data-id=...],它的意思是“任何<li>元素的data-id属性值为...”。
这不是任何特定库的问题,这就是 CSS 选择器的工作原理。
【解决方案2】:
根据css选择器$("li [data-id=87dhqsiu37fGyqUNA786d6F7]")表示任何具有data-id属性但在<li>的子元素中的元素。
但是这里<li> itselt 是一个带有data-id 属性的元素。
所以正确的语法是
$('li[data-id="87dhqsiu37fGyqUNA786d6F7="]')
只是一个简单的 CSS 选择器语法问题。