Ответ 1
Вы можете использовать селектор tag[attr*=string]
, где *=
соответствует строке, найденной в любом месте значения тега. Я покрасил текст красным, просто чтобы вы могли проверить...
$("li[data-city*=New York]").css({color:'red'});
Или с помощью более сложного метода для удовлетворения потребностей примера два:
$("li")
.filter( function(){
return $(this).attr('data-city').match(/(^|,\s+)London(,|$)/)
})
.css({color:'red'});
Этот метод использует фильтр для перехода по списку выбранных li
и соответствует всем элементам с атрибутом data-city
, который соответствует regex (^|,\s+)London(,|$)
, что означает...
- начало или запятая (
^|,
) - и одно или несколько пробелов (
\s+
) - затем
London
- за которым следует запятая или конец (
,|$
)
Я использовал этот HTML-код:
<li id="person1" data-city="Boston, New York, San Fransisco, London">
Person name 1
</li>
<li id="person2" data-city="Boston, New Jersey, London, San Fransisco">
Person name 2
</li>
<li id="person3" data-city="Los Angeles, New York, New London, Washington">
Person name 3
</li>