jquery a href识别

时间:2010-05-29 11:35:13

标签: jquery

我有一个页面,其中有多个href。我想找出哪个href被点击,并根据我想要显示和隐藏div的href点击?

5 个答案:

答案 0 :(得分:4)

我将假设您可以控制href,并希望获得最简单的标记,在这种情况下,您可以执行以下操作:

<a href="#div1">Toggle Div 1</a>
<a href="#div2">Toggle Div 2</a>

<div id="div1" class="toggleDiv">Div 1 Content</div>
<div id="div2" class="toggleDiv">Div 2 Content</div>

然后根据href或更具体的hash属性打开/切换div,您可以这样做:

$("a").click(function() {
    $(".toggleDiv").not(this.hash).hide();
    $(this.hash).toggle('fast');
});​​​

这会切换相应的<div>并使用匹配的ID == href减去哈希值,并隐藏其他<div>元素,如果这就是你所追求的...你只需要给它们这样做一个公共类,隐藏除当前链接相关的所有类。

You can view a demo here,看看它是不是你想要的。

答案 1 :(得分:1)

您可以将click处理程序附加到锚点:

$(function() {
    $('a').click(function() {
        var href = this.href;
        // test the href and show/hide the div:
        $('#someDiv').show();

        // return false to avoid following the link
        return false;
    });
});

答案 2 :(得分:1)

这应该给你一些开始:

$('a').click(function()
{
    var href = this.href;

    // Show/hide your div.
    return false;
});

只需在click处理函数中实现您的逻辑。

答案 3 :(得分:1)

你可以这样做:

$(function(){
 $('a').click(function(){
   alert('I was clicked, here my href = ' +  $(this).attr('href'));
   $('#div_id').slideToggle('slow'); // show hide div
   return false;
 });
});

答案 4 :(得分:1)

你说你想根据href选择div,这可以做到,但与其他一些机制相比,它相对较难。通常,我发现DOM结构中存在一些我可以利用的关系,或者我可以向link / div添加类以使解决方案更简单。例如,通常情况下链接与要显示的div相邻或位于同一容器中。在这种情况下,您可以遍历DOM并选择作为同一容器的兄弟或子的div。

一些例子:

在同一个容器中链接

 $('a.menu-item').click( function() {
      $('div.content').hide(); // hide all items
      $(this).parent().find('div.content').show(); // show associated item
 });

以与div相同的顺序链接

 $('a.menu-item').click( function() {
      var index = $('a.menu-item').eq(this).index();  // get index
      $('div.content').hide().eq(index).show(); // hide all, show corresponding
 });

使用相同的类(假设链接为带有div的单个唯一的共享类)

 $('a').click( function() {
     $('div.content').hide();
     $('div').hasClass( $(this).attr('class') ).show();
 });