我有一个mysql数据库。在表格中,我有一些上传文件的条目。我想在php页面上显示它。但这些文件按一列分类。所以我想要的是在该页面上有类别名称。在每个名字前面我想要一个按钮。最初在页面加载时,它不应显示文件。当有人点击按钮时,相应的类别应该展开。 但我无法做到。我给你一个示例代码的链接。 HTML代码
<span class="show"></span>
<p>category</p>
<table width='100%' class='tree'>
<tr>
<td width='70%'><b>Name</b></td>
<td width='30%'><b>Last Updated</b></td>
</tr>
</table>
http://jsfiddle.net/SumitRathore/FqcSM/
修改
这是我的示例html代码,我正在显示表格。这段代码有一些变量名称和sql查询不适用于此。我在这里找到了答案http://jsfiddle.net/JGLaa/2/,但这不起作用。我不知道为什么?
<span class="show"></span>
<p><b>category<b></p><br/>
<table width='100%' class='tree'>
<tr>
<td width='35%'><b>Name</b></td>
<td width='25%'><b>Last Updated</b></td>
</tr>
while($row = $result_sql->fetch_assoc())
{
<tr>
<td width='50%'><a href='http://127.0.0.1/wordpress/?page_id=464&name_file={$row['name']}&cat={$cat}&sec={$sec}' target='_blank'>{$row['title']}</a></td>
<td width='25%'>{$row['created']}</td>
<td width='25%'><input type='checkbox' class='checkbox'><input type='button' class= 'input1 input_box' value='delete' name='delete' id= '{$row['id']}'><input type='button' class='input2 input_box2' value='edit' name='edit' id= '{$row['id']}'></td>
</tr>
}
</table>
答案 0 :(得分:1)
看着你的代码,下一个选择器的使用是有缺陷的。来自Jquery.com:
.next([selector])
描述: 获取匹配元素集中每个元素的紧随其后的兄弟。如果提供了选择器,则仅当它与该选择器匹配时,它才会检索下一个兄弟。
我建议使用div来改变您的按钮和表格并使用以下代码:
$(document).ready(function(){
$(".show").html("<input type='button' value='Show All' class='treebtn'>");
$('.tree td').hide();
$('.treebtn ').click( function() {
$(this).parent().parent().find('table td').toggle();
if (this.value=="Show All") this.value = "Hide All";
else this.value = "Show All";
});
});
答案 1 :(得分:1)
您的问题是.next()
搜索了兄弟姐妹,因此找不到table
。尝试遍历父按钮(span
),然后找到span的兄弟表 -
$(this).parent().nextAll('table:first').find('td').toggle();
更新了JSFiddle - http://jsfiddle.net/JGLaa/1/
这是一个更新的JSFiddle,它有多个按钮/表格 - http://jsfiddle.net/JGLaa/2/
答案 2 :(得分:0)
$(document).ready(function(){
$(".show").html("<input type='button' value='Show All' class='treebtn'>");
$('.tree').hide();
$('.treebtn ').on('click', function() {
$(this).parent('span').next('table').toggle();
if (this.value=="Show All") this.value = "Hide All";
else this.value = "Show All";
});
});