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.