<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Tabs - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {
    $( "#tabs" ).tabs();
  });
  </script>
</head>
<body>
 
<div id="tabs">
  <ul>
    <li><a href="#tabs-1">Nunc tincidunt</a></li>
    <li><a href="#tabs-2">Proin dolor</a></li>
    <li><a href="#tabs-3">Aenean lacinia</a></li>
  </ul>
  <div id="tabs-1">
    <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
  </div>
  <div id="tabs-2">
    <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
  </div>
  <div id="tabs-3">
    <p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
    <p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
  </div>
</div>
 
 
</body>
</html>
用这个吧 , 方便多了  http://jqueryui.com/tabs/

解决方案 »

  1.   


    //选项卡切换
    $(document).ready(function () {
           $(".ul_nav li").mouseover(function () {
               $(this).parent("ul").children("li").removeClass("now");
               $(this).addClass("now");
               var bianhao = $(".ul_nav li").index(this);
        
               $(this).parents("div").children("div").addClass("hide").removeClass("show");
               $(this).parents("div").children("div:eq(" + bianhao + ")").addClass("show").removeClass("hide");     
           });
       });错误1: parent()只会向上查找一级
    错误2: ".div_c:eq(' + bianhao + ')" 应使用双引号
    错误3: children("div").find(".div_c:eq(' + bianhao + ')")  children("div")这里已经包含三个DIV了,不需要再查找他们的子节点
      

  2.   


    但是我正好需要找到这个子节点,不能用id,因为页面中div 很多,而且不同部分之间不能引发作用
      

  3.   

    按照层级关系找不可以吗? 
    这样  var bianhao = $(this).parent().find("li").index(this);
      

  4.   


    改成这样也可以啊,但是还是不执行。问题就在最后一句:
    别的地方都没问题,$(this).parents("div").children("div:eq(" + bianhao + ")").addClass("show").removeClass("hide");  这句话正确写法应该如何写:
     $(this).parent("div").children("div").find("div.div_c:eq(" + bianhao + ")").addClass("show").removeClass("hide");
    这样写也不行啊
      

  5.   

       //选项卡切换
            $(document).ready
    (
    function () {
        $(".ul_nav li").mouseover(function () {
            $(this).parent("ul").children("li").removeClass("now");
            $(this).addClass("now");
            var bianhao = $(this).parent().find("li").index(this);
            $(this).parent("div").children("div").addClass("hide").removeClass("show");
            $(this).parent("div").children("div").find('div.div_c:eq(" + bianhao + ")').addClass("show").removeClass("hide");
        });
    })还是不行,求解
      

  6.   

    $(document).ready(function(){
    $(".ul_nav li").mouseover(function () {
    $(this).siblings().removeClass("now");
    $(this).addClass("now");
    var bianhao = $(".ul_nav li").index(this);
    console.log(bianhao);
    $(".div_c").addClass("hide").removeClass("show");
    $(".div_c:eq("+ bianhao +")").addClass("show").removeClass("hide");     
    });
    })
      

  7.   

    3楼的代码就是正确的啊,你认真看过吗?
    只需要把var bianhao这句改成var bianhao = $(this).parent().find("li").index(this);就可以实现多个了
      

  8.   


    3楼的代码就是正确的啊,你认真看过吗?
    只需要把var bianhao这句改成var bianhao = $(this).parent().find("li").index(this);就可以实现多个了
    看了,运行了,不行啊
      

  9.   

    大家代码为什么不对?因为这个要求是适用于多组 选项卡的,现在的代码 一组选项卡没问题,如果二组就不行了,因为当你鼠标悬停于第一组选项卡中 第一个 按钮时候 ,第二组选项卡收到了影响,内容全部隐藏了,为了解决这个问题问题,所以才用了.parent().children() 这种写法,这种写法从结构上保证了,每组选项卡之间互不影响,但是这个写法不正确“ $(this).parent("div").children("div").find('div.div_c:eq(" + bianhao + ")').addClass("show").removeClass("hide");”至于说“var bianhao = $(this).parent().find("li").index(this);” 这一句,改或者不改 都一样,问题不是出在这里
      

  10.   

    楼主,今天才看到你发的消息 。
    错误2: ".div_c:eq(' + bianhao + ')" 应使用双引号 这里已经跟你说过了,用双引号啊。 难道你看不出来吗。find('div.div_c:eq(" + bianhao + ")') 这样 find()里面全部被当做字符串了, 并没有表达式改成这样  find("div.div_c:eq(" + bianhao + ")")