Try using .last() selector:
Reduce the set of matched elements to the final one in the set.
$( "table#dataTable.xLookup thead#PickerTHEAD tr th:visible" ).last()
Because your last visible child is not last child in the DOM node.
var a = $( "table#dataTable.xLookup thead#PickerTHEAD tr th:visible" ).last();
console.log(a.html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="dataTable" class="xLookup">
<thead id="PickerTHEAD">
<tr>
<th class="xSelBox"> </th>
<th style="display: none">Option ID</th>
<th>My Description</th>
<th>QTY</th>
<th>Unit Price</th>
<th style="display: none">nj1</th>
<th style="display: none">nj2</th>
</tr>
<tr>
...
</tr>
</thead>
<tbody>
...
</tbody>
</table>