2013-11-08 3 views
2

Мне нужно выбрать элемент HTML на основе данных в атрибуте «data-attributes». В Firefox DOM-инспектор, значение атрибута будет выглядеть так:CSS для выбора на основе атрибута data- *, содержащего массив значений?

<div data-attributes="[{"Id":50,"Code":"LIC","ShowInSessionFilter":false}]"> 

Я попытался с помощью селектора CSS, как показано ниже, но безрезультатно:

div[data-attributes~="LIC"] 

Таким образом я предполагаю, значение атрибута не является строкой как таковой, но объект javascript, отображаемый Инспектором как строка Json. Вопрос в том, как выбрать узел на основе одной из пар ключ/значение в содержащемся в нем объекте? Возможно ли это в CSS?

+0

'~ =' не будет надлежащей проверкой, так как он ищет "[список слов, разделенных пробелом] (http://reference.sitepoint.com/css/attributeselector)." – ScottS

ответ

6

Атрибут - это всего лишь строка, относящаяся к css. Вероятно, вы можете использовать div[data-attributes*="LIC"], хотя это не проверяет ключ json - оператор * = в CSS просто означает, что этот атрибут содержит эту подстроку. Таким образом, он также будет соответствовать ["LIC2": "foo"] и тому подобное.

Возможно, [data-attributes*=":\"LIC\""] будет достаточно хорошим для вашего случая.

+0

«Атрибут - это всего лишь строка, касающаяся css». Верный. – BoltClock

Смежные вопросы