user8631152
user8631152

Reputation:

jQuery - count all Select tags and subtract the length

I have n select tags in HtML from with same data-field. I want to count the number of select tags based on data-field="x_RATING". i want to return total count by subtracting 1 to the total.

I tried below code, but not returning the count.

var x = $('select[data-field="x_RATING"]').length() - 1;
alert(x);
<select data-table="assessment_rating"
        data-field="x_RATING"
        data-value-separator=", "
        id="x5_RATING"
        name="x5_RATING"
        class="form-control">
    <option value="">Please select</option>
    <option value="4">4</option>
    <option value="3">3</option>
    <option value="2">2</option>
    <option value="1">1</option>
</select>

<select data-table="assessment_rating"
        data-field="x_RATING"
        data-value-separator=", "
        id="x7_RATING"
        name="x7_RATING"
        class="form-control">
    <option value="">Please select</option>
    <option value="4">4</option>
    <option value="3">3</option>
    <option value="2">2</option>
    <option value="1">1</option>
</select>

Upvotes: 1

Views: 501

Answers (3)

user8743642
user8743642

Reputation:

Your xml xpath query is wrong. Try the following

var count = $("//select[@data-field='x_RATING'").length - 1;

Upvotes: 0

guradio
guradio

Reputation: 15555

  1. Use .length

var x = $('select[data-field="x_RATING"]').length - 1;
alert(x);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select data-table="assessment_rating" data-field="x_RATING" data-value-separator=", " id="x5_RATING" name="x5_RATING" class="form-control">

<option value="">Please select</option><option value="4">4</option><option value="3">3</option><option value="2">2</option><option value="1">1</option></select>

<select data-table="assessment_rating" data-field="x_RATING" data-value-separator=", " id="x7_RATING" name="x7_RATING" class="form-control">

<option value="">Please select</option><option value="4">4</option><option value="3">3</option><option value="2">2</option><option value="1">1</option></select>

Upvotes: 0

Shadow Fiend
Shadow Fiend

Reputation: 1829

Try this

var x = $('select[data-field="x_RATING"]').length-1;
alert(x);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select data-table="assessment_rating"
        data-field="x_RATING"
        data-value-separator=", "
        id="x5_RATING"
        name="x5_RATING"
        class="form-control">
    <option value="">Please select</option>
    <option value="4">4</option>
    <option value="3">3</option>
    <option value="2">2</option>
    <option value="1">1</option>
</select>

<select data-table="assessment_rating"
        data-field="x_RATING"
        data-value-separator=", "
        id="x7_RATING"
        name="x7_RATING"
        class="form-control">
    <option value="">Please select</option>
    <option value="4">4</option>
    <option value="3">3</option>
    <option value="2">2</option>
    <option value="1">1</option>
</select>

Just remove the () in length and it will work.

Upvotes: 1

Related Questions