Search code examples
javascriptjqueryhtmlcssjquery-selectors

Selecting button in second last td of first tr in table - Using jQuery selector


I've been trying to write a selector in jQuery which selects a button with a class in the second last td of the first tr in a table. This is what I've come up with so far:

$(':button.jtable-edit-command-button tr:first td:nth-last-of-type(2)').trigger('click');

But it doesn't work.

I've also tried this:

$(':button.jtable-edit-command-button:td:nth-last-of-type(2):tr:first').trigger('click');

But I get an error which says:

Syntax error, unrecognized expression: unsupported pseudo: td

Here's the JS Fiddle and this W3 Schoosls tutorial is what I'm using for help. All help and suggestions are greatly appreciated.


Solution

  • You could use:

    $('.jtable-data-row:first-child td:nth-last-of-type(2) button').css('background', 'red');
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <div id="tabs-Risks" class="tab ui-tabs-panel ui-widget-content ui-corner-bottom" aria-labelledby="FourthTab" role="tabpanel" aria-expanded="true" aria-hidden="false" style="display: block;">
      <div id="RiskTableContainer" class="jTableContainer" style="width:100%;">
        <div class="jtable-main-container">
          <div class="jtable-busy-panel-background jtable-busy-panel-background-invisible" style="display: none; width: 1432px; height: 835px;"></div>
          <div class="jtable-busy-message" style="display: none;"></div>
          <div class="jtable-title">
            <div class="jtable-title-text">Risks</div>
          </div>
          <table class="jtable">
            <thead>
              <tr>
                <th class="jtable-column-header jtable-column-header-sortable jtable-column-header-sorted-asc" style="width: 3.91146589259797%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">WBS</span>
    
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="display: table-cell; width: 6.25834542815675%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Task Name</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 6.47169811320755%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Risk Event</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 5.40493468795356%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">Date of Concern</span>
    
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 8.88969521044993%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Impact</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 6.04499274310595%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">Date Identified</span>
    
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 4.26705370101597%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Days Open</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="display: none;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Date Closed</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="display: none;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Type</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="display: none;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Mitigation Cost</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 6.54281567489115%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">Probability</span>
    
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 4.83599419448476%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Impact Effect</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 4.83599419448476%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Cost Impact</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 4.97822931785196%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">Overall Impact</span>
    
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 5.90275761973875%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Expected Cost</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 14.2235123367199%;">
                  <div class="jtable-column-header-container"> <span class="jtable-column-header-text">Impact Discussion</span>
    
                    <div class="jtable-column-resize-handler"></div>
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 5.12046444121916%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">Priority Effect</span>
    
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 5.12046444121916%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">Priority ($)</span>
    
                  </div>
                </th>
                <th class="jtable-column-header jtable-column-header-sortable" style="width: 5.19158200290276%;">
                  <div class="jtable-column-header-container"><span class="jtable-column-header-text">Severe?</span>
    
                  </div>
                </th>
                <th class="jtable-command-column-header" style="width: 1%;"></th>
                <th class="jtable-command-column-header" style="width: 1%;"></th>
              </tr>
            </thead>
            <tbody>
              <tr class="jtable-data-row" data-record-key="267">
                <td>1.0</td>
                <td>Obtain building permits</td>
                <td><a href="http://shhasan.ddns.net/risk/view/267">get building permit earlier</a>
    
                </td>
                <td>2014-03-18</td>
                <td>start dry wall job earlier then expected</td>
                <td>2014-01-21</td>
                <td>269</td>
                <td style="display: none;">2014-10-17</td>
                <td style="display: none;">Opportunity</td>
                <td style="display: none;"></td>
                <td>0%</td>
                <td>70</td>
                <td>$3000</td>
                <td>0</td>
                <td>$0</td>
                <td>This will only effect dry wallers</td>
                <td>10</td>
                <td>1</td>
                <td>No</td>
                <td class="jtable-command-column">
                  <button title="Edit Risk" class="jtable-command-button jtable-edit-command-button"><span>Edit Risk</span>
    
                  </button>
                </td>
                <td class="jtable-command-column">
                  <button title="Delete" class="jtable-command-button jtable-delete-command-button"><span>Delete</span>
    
                  </button>
                </td>
              </tr>
              <tr class="jtable-data-row jtable-row-even" data-record-key="650">
                <td>14.3.1</td>
                <td>Plumbing</td>
                <td><a href="http://shhasan.ddns.net/risk/view/650">Leaks</a>
    
                </td>
                <td>2014-10-05</td>
                <td></td>
                <td>2014-09-26</td>
                <td>26</td>
                <td style="display: none;">2014-10-22</td>
                <td style="display: none;">Threat</td>
                <td style="display: none;"></td>
                <td>0%</td>
                <td>0</td>
                <td>$1002</td>
                <td>0</td>
                <td>$0</td>
                <td></td>
                <td>10</td>
                <td>1</td>
                <td>No</td>
                <td class="jtable-command-column">
                  <button title="Edit Risk" class="jtable-command-button jtable-edit-command-button"><span>Edit Risk</span>
    
                  </button>
                </td>
                <td class="jtable-command-column">
                  <button title="Delete" class="jtable-command-button jtable-delete-command-button"><span>Delete</span>
    
                  </button>
                </td>
              </tr>
            </tbody>
          </table>
        </div>

    Reference: MDN - :first-child, MDN - :nth-last-of-type