Reputation: 285
I need to check if there is a element which has some class names or not
Example
<div id="text1" class="myclass searchA searchB searchC">...</div>
<div id="text2" class="myclass searchB searchA searchC">...</div>
<div id="text3" class="myclass searchD searchB searchA">...</div>
<div id="text3" class="myclass searchX searchY searchZ">...</div>
I tried to do it with this, but it wont work
var lookfor =".searchA.searchB";
console.log('id from div how matched the loorfor classes:'+$(".myclass").is(lookfor).attr('id'));
I also tried this
console.log('id from div how matched the loorfor classes:'+$(".myclass").hasClass(lookfor).attr('id'));
Additional notes: the order of the classes that I'm looking for can be different each time. Also it's important to check if all classes in the element are only one.
What am I doing wrong?
Is it possible to limit the search for a div? Example
<div id="firstdiv">
<div id="text1_first" class="myclass searchA searchB searchC">...</div>
<div id="text2_first" class="myclass searchB searchA searchC">...</div>
<div id="text3_first" class="myclass searchD searchB searchA">...</div>
<div id="text3_first" class="myclass searchX searchY searchZ">...</div>
</div>
<div id="scnddiv">
<div id="text1_scnd" class="myclass searchA searchB searchC">...</div>
<div id="text2_scnd" class="myclass searchB searchA searchC">...</div>
<div id="text3_scnd" class="myclass searchD searchB searchA">...</div>
<div id="text3_scnd" class="myclass searchX searchY searchZ">...</div>
</div>
Now I want only the classes inside the scnd
div that matched my lookfor
.
Upvotes: 1
Views: 40
Reputation: 6313
Instead of using a filter, just use the selector directly:
const id = $(".myclass.searchA.searchB").attr('id');
console.log('id from div which matched the classes: ' + id);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="text1" class="myclass searchA searchB searchC">...</div>
<div id="text2" class="myclass searchB searchA searchC">...</div>
<div id="text3" class="myclass searchD searchB searchA">...</div>
<div id="text3" class="myclass searchX searchY searchZ">...</div>
To the update of your question:
const id1 = $("#firstdiv .myclass.searchA.searchB").attr('id');
console.log('ID from the firstdiv that matched the classes: ' + id1);
const id2 = $("#scnddiv .myclass.searchA.searchB").attr('id');
console.log('ID from scnddiv that matched the classes: ' + id2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="firstdiv">
<div id="text1_first" class="myclass searchA searchB searchC">...</div>
<div id="text2_first" class="myclass searchB searchA searchC">...</div>
<div id="text3_first" class="myclass searchD searchB searchA">...</div>
<div id="text3_first" class="myclass searchX searchY searchZ">...</div>
</div>
<div id="scnddiv">
<div id="text1_scnd" class="myclass searchA searchB searchC">...</div>
<div id="text2_scnd" class="myclass searchB searchA searchC">...</div>
<div id="text3_scnd" class="myclass searchD searchB searchA">...</div>
<div id="text3_scnd" class="myclass searchX searchY searchZ">...</div>
</div>
Upvotes: 1