在HTML结构中:
<div class="someclass" tabindex="0" aria-describedby="my-specified-action my-one-name">
<div class="someclass" tabindex="1" aria-describedby="my-specified-action my-two-name">
<div class="someclass" tabindex="2" aria-describedby="my-specified-action my-three-name">
<div class="someclass" tabindex="3" aria-describedby="my-specified-action my-four-name">
<div class="someclass" tabindex="3" aria-describedby="my-specified-action my-five-name">
我需要隐藏具有包含我的值的属性aria-describedby
的所有元素(例如four
),但保持所有其他元素不受影响。
jQuery('div[aria-describedby*="four"]').hide()
当然,如果我愿意的话:
jQuery('div:not([aria-describedby*="four"])').hide()
它会隐藏所有元素(也包含我的目标......)
出于某种原因,这对我不起作用,..
jQuery('div:not([aria-describedby^="four"])').hide()
我做错了什么?
答案 0 :(得分:4)
您的问题不是属性选择器,而是目标元素选择器。
您隐藏了aria-describedby
属性不包含four
的所有div元素,而是需要微调选择器以仅定位您想要的元素。在你的情况下,因为所有div共享类someclass
使用它像
jQuery('div.someclass:not([aria-describedby*="four"])').hide()
演示:Fiddle