jQuery href导航

时间:2015-03-08 22:57:53

标签: javascript jquery html

我正在尝试制作一个简单的页面。我只希望一次展示一个师,并使用href#' s在身体中导航。我想我需要根据点击的锚链接显示/隐藏。谢谢。

HTML

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="javascript.js"></script>
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
    <meta charset="utf-8">
</head>
<body>

    <div id="home">
        <a href="#" rel="test">Go To Testing Number</a>
    </div>

    <div id="test">
        <a href="#" rel="home">Home</a>
        <p>Testing Number</p>
        <input type="number" value="0" />
    </div>


</body>
</html>

的JavaScript

$(document).ready(function(){
    $('div').not('#home').hide();   // show home page first
});

// this function needs to change I think, it does not work properly
$('a').on('click', function(){
   var target = $(this).attr('rel');
   $(target).hide();
   $("#"+target).show();
});

3 个答案:

答案 0 :(得分:3)

//this should work fine 
$('a').on('click', function(){
    var     target = $(this).attr('rel');
    If(target == "home"){
        $("#home" ).hide();
        $("#test").show();
    }else{
        $("#test" ).hide();
        $("#home").show();
    }
});

答案 1 :(得分:1)

您正确显示所选的DIV,但隐藏其他DIV的代码错误。为什么你认为$(target)会选择已经显示的DIV?

将不同标签的所有DIV分配到同一个类中,这样您就可以在一次调用中隐藏它们。

<div id="test" class="tab">
    <a href="#" rel="home">Home</a>
    <p>Testing Number</p>
    <input type="number" value="0" />
</div>

然后jQuery将是:

$("a").click(function() {
    var target = $(this).attr("rel");
    $(".tab").hide();
    $("#" + target).show();
});

答案 2 :(得分:1)

我在网上进行了数小时的研究后发现了这一点。简单而有力。

$(document).ready(function(){
    $('div').not('#home').hide();   // show home first

    $('a').click(function() {
        var target = $(this).attr('href');
        $('div').not(target).hide();
        $('div').filter(target).show();
    });
});

JSFiddle Solution