我有一个有7列的表。以下是HTML代码:
<table id="multiple-account-table" cellpadding="0" cellspacing="0">
<thead>
<tr class="border-class">
<th>Employee Name</th>
<th>Account Number</th>
<th>Account Name</th>
<th>Alias</th>
<th>Due Date</th>
<th>Total Due</th>
<th>Payment Amount</th>
</tr>
</thead>
</table>
现在我的要求是,当我点击表格标题时,该特定边框的底部应该有粗边框。当用户单击其他表头时,该边框应从先前的表头中删除并应用于当前单击的表头。如下图所示:
我写了这个jQuery代码:
$(document).on('click', 'thead', function () {
$(this).addClass('sort-border');
});
下面是我的排序边框CSS类:
.sort-border {
border-bottom: 4px solid black;
}
工作正常。但是,当我点击其他表格标题时,之前单击表格标题的边框不会删除。有什么建议吗?
答案 0 :(得分:2)
如果您首先尝试删除任何标题上的类,那么该类应该包含sort-border
类。
$(document).on('click', 'th', function () {
$('th.sort-border').removeClass('sort-border');
$(this).addClass('sort-border');
});
此外,thead
会为整行提供边框,如果您选择th
,则只会是带边框的单元格。
答案 1 :(得分:1)
$(document).on('click', 'thead', function () {
$('thead').removeClass('sort-border');
$(this).addClass('sort-border');
});
.sort-border {
background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table id="multiple-account-table" cellpadding="0" cellspacing="0">
<thead>
<tr class="border-class">
<th>Employee Name</th>
<th>Account Number</th>
<th>Account Name</th>
<th>Alias</th>
<th>Due Date</th>
<th>Total Due</th>
<th>Payment Amount</th>
</tr>
</thead>
</table>
<table id="multiple-account-table" cellpadding="0" cellspacing="0">
<thead>
<tr class="border-class">
<th>Employee Name</th>
<th>Account Number</th>
<th>Account Name</th>
<th>Alias</th>
<th>Due Date</th>
<th>Total Due</th>
<th>Payment Amount</th>
</tr>
</thead>
</table>
答案 2 :(得分:1)
做这样的事情:
$(document).ready(function(){
$('.border-class th').on('click'.function(){
$('.border-class th').removeClass('sort-border');
$(this).addClass('sort-border');
});
});
答案 3 :(得分:0)
thead
是您要修改的列标题(th
)的父级,因此您需要对其进行具体说明。
“thead th
”
您的JavaScript现在应该是,
$(document).on('click', 'thead th', function () {
$(this).addClass('sort-border').siblings().removeClass('sort-border');
});
将类添加到列中,然后将其从兄弟姐妹中删除(其他标题)