请您查看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");
但他们没有做好这份工作?
由于
答案 0 :(得分:1)
jQuery Documentation -
.closest()
method对于集合中的每个元素,通过测试元素本身并在DOM树中 遍历其祖先 来获取与选择器匹配的第一个元素。
它不起作用的原因是因为button
元素不在table
元素内部。因此,.closest()
方法永远不会找到table
。
您可以找到距离最近的.panel
祖先,然后从那里找到table
元素:
$('button[type="submit"]').click(function () {
$(this).closest('.panel').find('table').css("background-color", "yellow");
});