GrahamJRoy
GrahamJRoy

Reputation: 1643

Get the count of attributes using jquery

I have a page which contains a number of elements that look like:

<td>
  <input id="Data_0__IsDeleted" type="hidden" value="False" name="Data[0].IsDeleted" data-val-required="The IsDeleted field is required." data-val="true">
 <input id="Data_0__MobileId" type="hidden" value="1" name="Data[0].MobileId" data-val-required="Required" data-val="true">
 <input id="Data_0__CLI" type="hidden" value="07777777777" name="Data[0].CLI">
  <input id="Data_0__TariffName" type="hidden" value="Test Service Template" name="Data[0].TariffName">
  <input id="Data_0__TariffId" type="hidden" value="2" name="Data[0].TariffId" data-val-required="The TariffId field is required." data-val-number="The field TariffId must be a number." data-val="true">
  <input id="Data_0__NewTariffName" type="text" value="" name="Data[0].NewTariffName" data-val-required="Required" data-val="true">
  <span class="field-validation-valid help-inline valid_error" data-valmsg-replace="true" data-valmsg-for="Data[0].TariffId"></span>
</td>
...
<td>
  <input id="Data_1__IsDeleted" type="hidden" value="True" name="Data[1].IsDeleted" data-val-required="The IsDeleted field is required." data-val="true">
  <input id="Data_1__MobileId" type="hidden" value="2" name="Data[1].MobileId" data-val-required="Required" data-val="true">
  <input id="Data_1__CLI" type="hidden" value="07888888888" name="Data[1].CLI">
  <input id="Data_1__TariffName" type="hidden" value="Test Service Template" name="Data[1].TariffName">
  <input id="Data_1__TariffId" type="hidden" value="2" name="Data[1].TariffId" data-val-required="The TariffId field is required." data-val-number="The field TariffId must be a number." data-val="true">
  <input id="Data_1__NewTariffName" type="text" value="" name="Data[1].NewTariffName" data-val-required="Required" data-val="true">
  <span class="field-validation-valid help-inline valid_error" data-valmsg-replace="true" data-valmsg-for="Data[1].TariffId"></span>
</td>

and I want to return the number of input elements with the "_IsDeleted" value set to false. I would have thought that something like this would have done it.

$("[id^='Data_'][id$='__IsDeleted']").val("False").length)

Upvotes: 0

Views: 66

Answers (1)

Zenorbi
Zenorbi

Reputation: 2634

The val will either query or set the value but not filter by it. You could try using another attribute selector in your selector.

$("[id^='Data_'][id$='__IsDeleted'][value=False]").length

Or if you want more complicated matching:

$("[id^='Data_'][id$='__IsDeleted']").filter(function(index) {
    //Your code here, return true if you want it to pass.
    return $(this).val() === "False";
}).length

Upvotes: 1

Related Questions