2011-06-28 81 views
0

一张表是不是一个超链接的兄弟姐妹呢? 我:超链接后如何获取表格?

<a href="JavaScript:;">Show me the table</a> 
<table class="hidden"> 
... 
</table> 

问:jQuery选择做我用它来获得表中的锚标记以下?

$('a').click(function() { 
    $(this).something.slideDown(); 
}); 

回答

1

我强烈建议假设你的表永远是相邻的。它现在可能是正确的,但是如果你出于某种原因需要移动它,你的代码将会崩溃。

为自己节省一些麻烦,并在表单中存储标识符。一种选择是使用data attributes来存储选择器。

<a href="#" data-target-table="#table1">Show me the table</a> 
<table id="table1" class="hidden"> 
    ... 
</table> 

和它使用.data()

$('a').click(function() { 
    var $this = $(this); 
    var $table = $($this.data('targetTable')); 
    $table.something.slideDown(); 
}); 

一种替代获得是使每个元件在一个共同的类并用它来选择表格。

2

您可以使用.next()或.siblings()来访问DOM中同一级别的元素。

因此,在您例如,你可以使用:

$('a').click(function() { 
    $(this).siblings('table').slideDown(); 
}); 
+0

哦,我的印象是,兄弟姐妹都是相同类型的元素,比如li或td。 –

+0

这绝对是.siblings()的一个用例,但它比这更一般。即使在http://api.jquery.com/siblings/上,他们也使用它作为段落标记。 –

+0

是的,但只有兄弟的段落。 –

3
$('a').click(function(){ 
    $(this).next().slideDown(); 
});