jquery在表中显示所有DIV,只想在链接后显示div

时间:2011-11-10 18:52:50

标签: jquery html hidden

我无法弄清楚如何在每个td中选择立即div并加载页面。 Everylink切换每一个隐藏的div!

该表有100行。 每行都有一个可以看到的部分,这是一个链接。 然后我包含了一个隐藏在每一行内的div。 我只想让每一行上的链接显示它下面的直接div,现在每一行。

我的html设置如下:

<div id=container>
<div id=box>
<table>
<tr><td><a href=link></a>
<div id=page class=hidden></div></td></tr>
</table>
</div>
</div>

并且jquery执行此操作:

$(document).ready(function() {
$("td a").click(function() {
  var myUrl = $(this).attr("href");
  $("#page").load(myUrl);
  $(this).toggle();
  return false;
});
$(".hidden").hide();
});

4 个答案:

答案 0 :(得分:1)

您的代码$(this).toggle();切换链接的可见性,而不是其后的div。

将该行替换为$(this).next('div').toggle();,你应该没问题。

答案 1 :(得分:0)

使用选择器

$('td > div.hidden') // to get the first div with the hidden class in td 

答案 2 :(得分:0)

元素必须具有独特的ID,因此,您必须使用一个类来识别重复的div,并为它们提供unque ID!

这样的事情应该可以解决问题:

<div id=container>
    <div id=box>
        <table>
           <tr><td><a href=link></a>
                   <div id="page1"  class="hidden page"></div>
               </td>
           </tr>
        </table>
     </div>
</div>


$(document).ready(function() {
    $("td a").click(function(e) {
         $(".hidden").hide(); //hide all the divs at first.
          e.preventDefault(); //stop the link from being followed
          var myUrl = $(this).attr("href"); 
          $(this).siblings('div.page').load(myUrl).show();  //get the div and load it, then show it

          return false;
    });


});

答案 3 :(得分:0)

尝试这样的事情:

$("td a").click(function(e){
     e.preventDefault();
     $(this).closest("td").find("#page1").load($(this).attr("href"));
});