html 数据属性数组的jQuery选择器

vohkndzv  于 2022-11-20  发布在  jQuery
关注(0)|答案(2)|浏览(160)

下面是html代码:

<div class="wcpa_form_outer" data-attrrelated="[&quot;wcpa-select-1658734650073&quot;]">

我尝试了各种方法,但是没有一种方法有效。

jQuery('.wcpa_form_outer[data-attrrelated="[&quot;wcpa-select-1658734650073&quot;]"]').append('some html here');

jQuery('.wcpa_form_outer[data-attrrelated="[wcpa-select-1658734650073]"]').append('some html here');

jQuery('.wcpa_form_outer').data('attrrelated').append('some html here');

有线索吗?

mdfafbf1

mdfafbf11#

属性值中的&quot;和/或[]可能有问题请将其移除,或尝试使用属性值的 part(最相关的部分?):
第一个

kb5ga3dv

kb5ga3dv2#

问题是您在属性中使用了HTML实体&quot;。这将被转换为文字引号。JQuery不做实体转换,因此它将查找字符串[&quot;wcpa-select-1658734650073&quot;](带有“&”和all),而不是属性中的实际值["wcpa-select-1658734650073"]
您可以使用以下方法之一解决此问题(在代码中将实体转换为引号之后)。
1.对属性使用CSS“contains”选择器(attr*=value)(KooiInc的答案演示了这一点),或者
1.使用一个字符串模板,它允许您在字符串中嵌入两种类型的引号,并获得完全匹配(attr=value),如下所示
1.通过使用字符串串联构造包含引号的字符串值(例如'["' + value + '"]'
1.在尝试查找之前,使用this answer中的decodeEntities函数转换属性值(未经测试,已有10年历史)
第一个

相关问题