我會說有這樣做主要有兩種方式,你就必須找出哪一個是最適合你;這取決於。
你在說什麼是在DOM中添加一行。在某些情況下這很好,這取決於這個摺疊行用於什麼。如果您希望能夠刪除摺疊的行並重新添加它,那麼如果您每次都必須通過JavaScript重新構建所有內部HTML,那麼它可能會使您的生活變得非常困難。
var collapseHTML = '<tr class="collapse"><td colspan="2">This is my new row</td></tr>';
$('.icon-chevron-right').click(function() {
$('.collapse').remove(); // Deletes all rows that has class "collapse"
collapseHTML.insertAfter($(this).closest('tr')); // Inserts what's stored in collapseHTML after "this closest tr"
});
然後,當別人說,你可以加入那些行解決這個問題得到去像這樣:
<tr>
<td><div class="icon-chevron-right"></div></td>
<td><div>List 1</div></td>
</tr>
<tr class="collapse">
<td colspan="2">This is my new row</td>
</tr>
然後,你的CSS應該loook是這樣的:
.collapse {
display: none;
}
.collapse.active {
display: block;
}
這意味着當您將active
類添加到摺疊行時,它會從display: none;
到display: block;
。這你通過JavaScript/jQuery做的:
$('.icon-chevron-right').click(function() {
$('.collapse.active').removeClass('active'); // Removes active from all active collapsed rows
$(this).closest('tr').next().addClass('active'); // adds active class to "this closest tr's next element" (which is the collapse row)
});
希望這有助於!