简体   繁体   中英

How to find an element using “substring or contains” of value of HTML Attribute in selector using JQuery?

How to find an element using substring of HTML Attribute value in selector?

I am trying to find whether div contains an input with docnumber startes with letter 'S'

  alert($("#forbDokProd").find(".dokMalProd input[name='check2'] [data-doknumber*='S'").length > 0) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <div id="doc" class="docParent"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="S004"> <---Starts with S <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B004"> <---Starts with B <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B005"> <---Starts with B </div> 

https://jsfiddle.net/vfse1caL/1/

Not preferring For Each

Your selector is wrong. It should not contain space between [name=] and [data-doknumber] . It also should be ^= to only starts with :

".dokMalProd input[name='check2'][data-doknumber^='S']" 

 alert($("#forbDokProd").find(".dokMalProd input[name='check2'][data-docnumber^='S']").length) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="forbDokProd"> <div id="doc" class="docParent dokMalProd"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="S004"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B004"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B005"> </div> </div> 


There are also other typos: missing closing ] , wrong HTML structure and selectors.

The [attribute^=value] selector selects each element with a specific attribute, with a value beginning in a specific string. Remove the space between the selectors.

 console.log($("#doc").find("input[name='check2'][data-docnumber^='S']").length > 0) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="doc" class="docParent"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="S004"> <!---Starts with S--> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B004"> <!---Starts with B--> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B005"> <!---Starts with B--> </div> 

You are having a type error in your code, your using docnumber and doknumber

alert($("#doc").find("input[name='check2'][data-docnumber*='S']").length > 0)

demo

 console.log($("#doc").find("input[name='check2'][data-docnumber*='S']").length > 0) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="doc" class="docParent"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="S004"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B004"> <input type="checkbox" name="check2" class="ballu" value="123" data-docnumber="B005"> </div> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM