Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery targeting aria attribute containing value

In an HTML structure of :

<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">

I need to hide all elements that has an attribute aria-describedby containing my value ( for example four ), but leave all others untouched.

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

of course, if I will do :

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

it will hide ALL elements ( also the ones containing my target ..)

for some reason, this is not working for me ,..

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

what am I doing wrong ??

like image 577
Obmerk Kronen Avatar asked Oct 19 '25 03:10

Obmerk Kronen


1 Answers

Your problem is not the attribute selector, it is the target element selector.

You are hiding all div elements whose aria-describedby attribute does not contain four, instead you need to fine tune the selector to target only those element you want. In your case since all the div's share the class someclass use it like

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

Demo: Fiddle

like image 100
Arun P Johny Avatar answered Oct 21 '25 16:10

Arun P Johny



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!