mur*_*rze 8 jquery html5 custom-data-attribute
有没有办法在jQuery中选择在数据属性数组中具有特定值的元素?
考虑一下这个html片段:
<li id="person1" data-city="Boston, New York, San Fransisco">
Person name 1
</li>
<li id="person2" data-city="Los Angeles, New York, Washington">
Person name 2
</li>
Run Code Online (Sandbox Code Playgroud)
jQuery中选择数据城市属性中所有"纽约"人物的最佳方法是什么?
解决方案应该考虑到某些城市名称出现在其他城市名称中(例如2:伦敦,新伦敦)
例2:
<li id="person1" data-city="Boston, London, San Fransisco">
Person name 1
</li>
<li id="person2" data-city="Los Angeles, Washington, New London">
Person name 2
</li>
Run Code Online (Sandbox Code Playgroud)
在jQuery中选择数据城市属性中所有"伦敦"的人的最佳方法是什么?不应选择带有"新伦敦"的城市.
Bil*_*oon 35
您可以使用选择tag[attr*=string]其中*=的标签值的任何地方发现的字符串相匹配.我把文字涂成了红色,这样就可以测试......
$("li[data-city*=New York]").css({color:'red'});
Run Code Online (Sandbox Code Playgroud)
或者通过更复杂的方法来满足示例二的需求:
$("li")
.filter( function(){
return $(this).attr('data-city').match(/(^|,\s+)London(,|$)/)
})
.css({color:'red'});
Run Code Online (Sandbox Code Playgroud)
此方法使用过滤器遍历所选列表li并匹配具有data-city匹配正则表达式的属性的所有元素,(^|,\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>
Run Code Online (Sandbox Code Playgroud)