有关使用jQuery定位内部表的问题

时间:2015-03-07 16:13:30

标签: jquery

请您查看This Demo并告诉我为什么我无法更改与上方按钮相关的每张桌子的背景颜色?

$(function () {
    $('button[type="submit"]').click(function () {
        $(this).closest('table').css("background-color", "yellow");
       // $(this).closest('.panel-body').find('.table').css("background-color", "yellow");
    });
});

如您所见,我已经尝试过:

 $(this).closest('table').css("background-color", "yellow");

 $(this).closest('.panel-body').find('.table').css("background-color", "yellow");

但他们没有做好这份工作?

由于

1 个答案:

答案 0 :(得分:1)

  

jQuery Documentation - .closest() method

     

对于集合中的每个元素,通过测试元素本身并在DOM树中 遍历其祖先 来获取与选择器匹配的第一个元素。

它不起作用的原因是因为button元素不在table元素内部。因此,.closest()方法永远不会找到table

您可以找到距离最近的.panel祖先,然后从那里找到table元素:

Updated Example

$('button[type="submit"]').click(function () {
    $(this).closest('.panel').find('table').css("background-color", "yellow");
});