【发布时间】:2012-07-10 14:22:59
【问题描述】:
这个问题是我的问题的根本原因。
Hide all next tr td until next tr th
由于已经发布了两个答案,我想尝试一些不同的东西
Javascript:
$(function(){
var thList = $('td');
$('td').click(function(){
for( i =0; i < thList.length;i++){
// What to do here
}
});
});
HTML:
<table border="2">
<tr>
<td> 1 </td>
<td> 2 </td>
<td> 3 </td>
</tr>
<table>
这里做的是
将点击事件分配给<TH> 元素。在加载时,我将 DOM 中的所有 <TH> 放入一个数组中。
现在,我的逻辑是。迭代for循环,如果点击的TH不是for loop中的那个,则隐藏它。
我尝试的是
if ( thList[i] != $(this)) { thList[i].style.display = 'none' }
但这似乎不起作用。我需要放什么代码来比较对象
【问题讨论】:
-
是否在页面加载之后添加
th元素? -
从您发布的代码看来,被点击的
TH将总是在thList数组中。 -
除非我误解了这个问题,否则你不需要跳过循环来实现你想要的。在点击处理程序中 $(this) 已经引用了被点击的元素。
-
@999 Yeh .它将在列表中。我不包括被点击的那个
-
迪米特里 是的。你是对的。 $(this) 总是代表被点击的那个。所以,我排除了被点击的那个,并从数组中隐藏了剩下的
标签: javascript jquery dom