And*_*bol 9 javascript jquery animation html-table
我有一系列类似于以下html代码的表:
<table id="film"><tr>
<th class="1">//HEAD CONTENT 1//</th>
</tr>
<tr>
<td class="1">//BODY CONTENT 1//</td>
</tr></table>
<table id="film"><tr>
<th class="2">//HEAD CONTENT 2//</th>
</tr>
<tr>
<td class="2">//BODY CONTENT 2//</td>
</tr></table>
Run Code Online (Sandbox Code Playgroud)
我希望在<th>单击相应的head()时单独展开表格.表格应该开始未展开.我使用以下jQuery脚本:
$(document).ready(function(){
$('#film td').hide();
});
$(document).ready(function(){
var n1 = 0;
$('#film th.1').click(function(){
if(n1 == 0){
$('#film td.1').show();
n1 = 1;
}else{
$('#film td.1').hide();
n1 = 0;}
});
var n2 = 0;
$('#film th.2').click(function(){
if(n2 == 0){
$('#film td.2').show();
n2 = 1;
}else{
$('#film td.2').hide();
n2 = 0;}
});
});
Run Code Online (Sandbox Code Playgroud)
但是,当我只执行顶级表时,能够显示/隐藏第二个表.谁能看到我哪里出错了?
yoo*_*er8 10
您在多个元素上使用相同的ID.当你按id搜索时,jQuery将只返回一个项目(第一个带有该id).所以你的代码只在第一个表上运行.在表上使用类而不是id.
<table class="film">......</table>
$('.film').each(function(f) {
//this function will execute for each element with the class "film"
//refer to the current element during this function using "$(this)"
});
Run Code Online (Sandbox Code Playgroud)
更简单的方法是使用类而不是table值的id .这样他们就可以更容易地被称为一个群体
<table class="film"> ...
Run Code Online (Sandbox Code Playgroud)
之后,以下jquery应该为您提供您正在寻找的行为
$(document).ready(function() {
$('.film td').hide();
$('th').click(function() {
$(this).parents('table').find('td').toggle();
});
});
Run Code Online (Sandbox Code Playgroud)
小提琴:http://jsfiddle.net/WZUAZ/1/