日期:2014-05-16  浏览次数:20379 次

jquery如何选中非当前元素?
比如说我有一个表格,第一列是选择,当我点击当前行的选择之后,其他行就被隐藏。效果如下

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function(){
$("tr td").click(function(){
if($(this).text()=="选择"){
$("tr").hide();
$(this).parent().show();
}
});
})
 </script> 
<table border="1" cellspacing="0" cellpadding="0" width="600">
 <tr>
<td/>选择</td>
<td>2</td>
<td>2</td>
<td>1</td>
<td>2</td>
<td>2</td>
<td>1</td>
 </tr>
 <tr>
<td>选择</td>
<td>2</td>
<td>1</td>
<td/>1</td>
<td>1</td>
<td>2</td>
<td>0</td>
 </tr>
 <tr>
<td/>选择</td>
<td>1</td>
<td>2</td>
<td/>0</td>
<td>1</td>
<td>2</td>
<td>0</td>
 </tr>
</table>

我想问的是如何表示非当前元素,是!$(this),not($(this))?还是有其他表示方法

------解决方案--------------------
这种问题应当先去查API,

.prevAll() //获取指定元素的前边所有的同级元素。
.nextAll() //获取指定元素后边的所有同级元素

------解决方案--------------------
引用
 $("tr").hide();           
 $(this).parent().show();这两行能不能合并成
$().not($(this)).parent().hide();这种形式(这个写法是错的,但我也不知道该怎么写)


$("tr").hide();
$(this).parent().show();
这两行可以合并成:
$(this).parent().siblings().hide()


siblings()表示同级元素,但不包括本身。