jQuery目标包含值的aria属性

时间:2014-02-22 05:39:23

标签: javascript jquery

在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()

我做错了什么?

1 个答案:

答案 0 :(得分:4)

您的问题不是属性选择器,而是目标元素选择器。

您隐藏了aria-describedby属性不包含four的所有div元素,而是需要微调选择器以仅定位您想要的元素。在你的情况下,因为所有div共享类someclass使用它像

jQuery('div.someclass:not([aria-describedby*="four"])').hide()

演示:Fiddle