【问题标题】:HTML/Jquery: $('a').attr('href') and .each?HTML/Jquery:$('a').attr('href') 和 .each?
【发布时间】:2011-10-21 23:48:36
【问题描述】:

我的问题是关于 HTML 和 Jquery。

我在 HTML 代码中有一些链接,如下所示:

<a href="#box1">Item1</a>
<a href="#box2">Item2</a>
<a href="#box3">Item3</a>
etc.

在我当前的 JQuery 脚本中,我有以下代码:

$(function () {
    var targetbox = $('a').attr('href');
    $('a').click(function (event) {
        $(targetbox).fadeIn(2000);
        $('#showtext').text(targetbox);
    });
});

这个脚本所做的(或最终应该做的)是淡入隐藏的 div 之一(#box1、#box2 等),具体取决于单击的链接(参见 HTML 代码)。我添加了#showtext div 来查看属性是否被正确存储。

脚本工作正常,但是,只有在第一个链接中找到的第一个 href 属性。我知道 $('a').attr('href') 仅获取第一个 'a' 元素的属性,并且我需要在某处添加 .each ,但我不知道在哪里添加它。我尝试在几个地方添加,但它停止了代码工作。

感谢您的帮助。

哎呀

【问题讨论】:

    标签: jquery href attr each


    【解决方案1】:

    由于 ID 包含在 href 属性中,而 this 指的是被点击的元素,您只需访问其属性即可:

    $('a').click(function (event) {
        $(this.getAttribute('href')).fadeIn(2000);
        // or: $($(this).attr('href')).fadeIn(2000);
    });
    

    【讨论】:

      【解决方案2】:
      $(function(){
         $("a").click(function(e){
             e.preventDefault(); //avoid applying the hash to the browser (unless desired)
             var href = $(this).attr("href").split("#")[1]; //IE6 will append the URL in front of the hash
             $("#" + href).fadeIn(2000);
         });
      });
      

      【讨论】:

      • 非常感谢。这个解决方案效果很好!最好的问候。
      【解决方案3】:

      并不是说我对 jQuery 或任何东西有任何经验(我个人认为它是为懒惰的程序员准备的),但你不应该有类似的东西:

      $(function(){ 
          $('a').click(function(event) { 
              var targetbox = $(this).attr('href'); 
              $(targetbox).fadeIn(2000); 
              $('#showtext').text(targetbox); 
          }); 
      }); 
      

      【讨论】:

      • 这就是为什么他们被称为程序员,因为他们很懒惰......而且反对票不是来自我......
      • 谢谢,我会试试这个。我是一名设计师,因此懒惰的编程有时是我唯一的选择:)
      • 是的,为了说“我很忙”而重新发明轮子是一个非常好的习惯。 (反对票也不是来自我)
      • @Gee:注意this.attr('href') 是错误的。应该是$(this).attr(...)
      • jQuery 令人困惑和臃肿。我编写了自己的代码,令人惊讶的是,它的运行速度快了大约 20 倍。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 2011-08-02
      • 2014-07-26
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多