0

I want to save data-rowindex value dynamically into array

<tr class="ewTableRow" data-rowindex="1" id="r1_assessment_training" data-rowtype="2">

I tried below code. (I am not sure weather below code is correct way or not)?

var a = $('#tbl_assessment_traininggrid tr').length;

var row_count = [];
    for (var i = 1; i <= a; i++) {
        var rowCntrl = $("data-rowindex[i]").val();
        alert(rowCntrl);
        row_count.push(rowCntrl);
    }
2
  • a Tr doesn't have a value, what result do you want to be pushed into the array? Commented Oct 13, 2017 at 4:54
  • data-rowindex = 1 from HTML Commented Oct 13, 2017 at 4:55

3 Answers 3

2

Also please note that if you want to select an element with the variable i, then use $("[data-rowindex=" + i + "]")

var a = $('#tbl_assessment_traininggrid tr').length;

var row_count = [];
for (var i = 1; i <= a; i++) {
  var rowCntrl = $("[data-rowindex=" + i + "]").attr("data-rowindex");
  alert(rowCntrl);
  row_count.push(rowCntrl);
}

console.log(row_count)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tbl_assessment_traininggrid">
  <tr class="ewTableRow" data-rowindex="1" id="r1_assessment_training" data-rowtype="2"></tr>
  <tr class="ewTableRow" data-rowindex="2" id="r2_assessment_training" data-rowtype="2"></tr>
  <tr class="ewTableRow" data-rowindex="3" id="r3_assessment_training" data-rowtype="2"></tr>
</table>

Sign up to request clarification or add additional context in comments.

Comments

1

The below answer works for me.

$(".ewTableRow").each(function(){
   row_count.push($(this).data('rowindex'));
});

Use Jquery function..!

Comments

0

You can use each from Jquery to traverse over the elements and use .data() to get the data from the data attributes of the element (note: using data helps parse a json string and get a object directly from data attribute, incase you need to save a json string in data attribute), as shown below:

var row_count = [];
    
$(".ewTableRow").each(function(){
  row_count.push($(this).data('rowindex'));
});

console.log(row_count);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
   <tr class="ewTableRow" data-rowindex="1"  data-rowtype="2"></tr>
   <tr class="ewTableRow" data-rowindex="2"  data-rowtype="2"></tr>
   <tr class="ewTableRow" data-rowindex="3" data-rowtype="2"></tr>
  </table>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.