如何查找TR中低于TR的TR内的TD?

时间:2018-05-16 16:57:39

标签: javascript jquery html onclick append

此代码的目的是,如果<td>中包含的<tr>位于被点击的<tr>之下,则进行ajax调用,但仅限于隐藏{{1} }} 是空的。最终我打算拿这些数据并用它做点什么,但是现在,我只需要把这个模仿手风琴的东西作为一个表工作。由于这个表是在我有其他<tr>元素的同一个html文件上创建的,所以我必须创建自定义类来隐藏这些特定的元素。课程.hidden使其可见,而课程detail-view包含hidden-detail。我知道postDetails可以找到合适的数据。我更担心的是找出为什么FireFox的开发工具在此代码中将display:nonestatusRow标记为detPane,而(unavailable)实际上似乎包含行statusRow.closest('tr').next('tr'),如预期的那样。 jQuery或选择器有问题吗?这里发生了什么?

detPane

2 个答案:

答案 0 :(得分:0)

问题在于,正如epascarello指出的那样,text不是有效的财产。 Ergo,找不到任何东西。但是,我还需要分别抓住细节 - 即。无法从其他东西访问东西,只是遍布整个地方的菊花链选择器。所以,这是最终结果。

function makeOrderTable(response, username, sesstoken) {
    $(jQuery.parseJSON(JSON.stringify(response))).each(function() {
        var foNum = this['Factory Order#'];
        var pO = this['PO#'];
        var status = this['Status'];
        var shipDate = this['Ship Date'];
        $('.orders tbody').append(
            '<tr class="status-row">'+
                '<td>' + foNum + '</td><td>' + pO  + '</td><td>' + status + '</td><td>' + shipDate + '</td>'+
            '</tr>'+
            '<tr class="detail-row hidden-detail">'+
                '<td colspan="4"></td>'+
            '</tr>'
        );
    });
    $(document).ready(function() {
        $('table').on('click', 'tr.status-row', function() {
            var statusRow = $(this);
            var detRow = statusRow.closest('tr').next('tr');
            var details = this.nextElementSibling.querySelector('td');
            $('.detail-view').addClass('hidden-detail');
            $('.detail-view').removeClass('detail-view');
            detRow.addClass('detail-view');
            detRow.removeClass('hidden-detail');

            if (details.innerText == '')
            {
                var value = statusRow.find('td:first-child').text();
                postDetails(value, username, sesstoken, details);
            }
        });
    });
}

答案 1 :(得分:-1)

如果我正确理解了这个问题,我认为“隐藏”tr的选择器不正确。

您已将点击事件附加到tr,因此您不必执行.closest('tr')。只需var detPane = $(statusRow[0]).next('tr');,就可以在点击的tr之后找到下一个JpaRepository#deleteInBatch(Iterable<T> batch)