我有一个扩展的表格行,但有两件事我不确定
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<body>
<table>
<tr class="parent" id="row123">
<td>People</td>
<td>Click to Expand</td>
<td>N/A</td>
</tr>
<tr class="child-row123">
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr class="child-row123">
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
</table>
<script>
$(function() {
$('tr.parent')
.css("cursor","pointer")
.click(function(){
$(this).siblings('.child-'+this.id).toggle();
});
$('tr[@class^=child-]').hide().children('td');
});
</script>
</body>
</html>
谢谢,
答案 0 :(得分:1)
您可以在切换操作上添加效果,例如“慢”。
对于初学者的崩溃,你可以选择tr的所有simbling:
$('tr.parent').siblings('[class^=child]').hide();
我做了一个工作的例子: 这是a jsfiddle link
答案 1 :(得分:0)
$(function() {
$('tr[class^="child-"]').hide();
$('tr.parent')
.css("cursor","pointer")
.click(function(){
$('.child-'+$(this).attr("id"). slidetoggle();
});
});
答案 2 :(得分:-1)
此
$('tr[@class^=child-]').hide().children('td');
应该是这样的:
$('tr[class^=child-]').children('td').hide();
注意删除的@。
对于slideToggle,使用div而不是table元素,这在动画中非常麻烦:
<td><div>People</div></td>
$('tr.parent')
.css("cursor", "pointer")
.click(function () {
$(this).siblings().find('td > div').slideToggle();
});
$('tr[class^=child-]').children('td').children('div').hide();
<强> Demo 强>
选择器会因多个子行而变得复杂一些:
$('tr.parent')
.css("cursor", "pointer")
.click(function () {
// slide up divs in all sibling rows
$(this).siblings('tr[class^=child-]').find('div').slideUp();
// define children as all trailing, sequential rows with 'child-' class
var $children = $(this).nextUntil( $('tr').not('[class^=child-]') );
// toggle those
$children.find('td > div').slideToggle();
});
// initially hide all child rows (could also be done with CSS)
$('tr[class^=child-]').find('td > div').hide();
<强> Demo 2 强>