0

I need the values for the below TDs in a JavaScript array that I can loop through in another part of my code later on:

    <table>
        <tr><td class="drdsclient">DSCDS201020101</td></tr>
        <tr class="drcheck">
            <td>Maximum online generations:</td>
            <td class="maxonlval notopborder">30</td>
            <td class="maxonlnotes notopborder">notes</td>
        </tr>
        <tr class="drcheck">
            <td>Default Retention Rule set:</td>
            <td class="defretruleval notopborder">No default Retention rule set</td>
            <td class="defretrulenotes notopborder">notes</td>
        </tr>
        <tr class="drcheck">
            <td>Default Backup Schedule set:</td>
            <td class="defschedval notopborder">No default Schedule set</td>
            <td class="defschednotes notopborder">notes</td>
        </tr>

        <tr class="drcheck"> <td class="drdsclient">DSCDS901999102</td></tr>
        <tr class="drcheck">
            <td>Maximum online generations:</td>
            <td class="maxonlval notopborder">29</td>
            <td class="maxonlnotes notopborder">notes</td>
        </tr>
        <tr class="drcheck">
            <td>Default Retention Rule set:</td>
            <td class="defretruleval notopborder">30 days</td>
            <td class="defretnotes notopborder">notes</td>
        </tr>
        <tr class="drcheck">
            <td>Default Backup Schedule set:</td>
            <td class="defschedval notopborder">Monday to Friday @ 21:00</td>
            <td class="defschednotes notopborder">notes</td>
        </tr>
    </table>

Tried the below JS code:

var array = $('.drdsclient').map(function() {
  var $client = $(this);
  var $rows = $client.closest('tr').nextUntil('tr:has(.drdsclient)');

  var obj = { 
    drdsc: $client.text()
  };

  $rows.each(function() { 
    obj['maxonlval'] = $('.drcheck').find('td.maxonlval').text();
    obj['defretruleval'] = $('.drcheck').find('td.defretruleval').text();
    obj['defschedval'] = $('.drcheck').find('td.defschedval').text();
  });

  return obj;
}).get();

But objects are duplicated:

[0]
    [drdsc] => "DSCDS201020101"
    [maxonlval] => "3029"
    [defretruleval] => "No default Retention rule set30 days"
    [defschedval] => "No default Schedule setMonday to Friday @ 21:00"
[1]
    [drdsc] => "DSCDS901999102"
    [maxonlval] => "3029"
    [defretruleval] => "No default Retention rule set30 days"
    [defschedval] => "No default Schedule setMonday to Friday @ 21:00"

Ideally if I can have something like below:

[0]
    [drdsc] => "DSCDS201020101"
    [maxonlval] => "30"
    [defretruleval] => "No default Retention rule set"
    [defschedval] => "No default Schedule set"
[1]
    [drdsc] => "DSCDS901999102"
    [maxonlval] => "29"
    [defretruleval] => "30 days"
    [defschedval] => "Monday to Friday @ 21:00"
4
  • Try replacing $rows.each(function() with $rows.each(function(key, value) then also replace $('.drcheck').find with $(value).find try if that works Commented Mar 31, 2017 at 9:50
  • Blank values: [maxonlval] => "" Commented Mar 31, 2017 at 9:52
  • And what if you do $(key).find? Just curious ;) Commented Mar 31, 2017 at 9:54
  • Nope, still blank values. Commented Mar 31, 2017 at 9:58

1 Answer 1

2

Maybe replace this part

  $rows.each(function() { 
    obj['maxonlval'] = $('.drcheck').find('td.maxonlval').text();
    obj['defretruleval'] = $('.drcheck').find('td.defretruleval').text();
    obj['defschedval'] = $('.drcheck').find('td.defschedval').text();
  });

with

obj['maxonlval'] = $rows.find('td.maxonlval').text();
obj['defretruleval'] = $rows.find('td.defretruleval').text();
obj['defschedval'] = $rows.find('td.defschedval').text();

Note no loop over $rows

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

1 Comment

Well that was simple. Thank you

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.