Jquery 选项卡 href 和 ID

发布于 2024-11-11 18:37:04 字数 515 浏览 3 评论 0原文

我使用 css 和 javascript 创建了一个简单的选项卡导航。 尽管我想澄清一件事,但它工作得很好。

每个列表项(选项卡)都有一个“href”属性,与“选项卡内容”div 的 ID 匹配。然后我使用 jQuery 完成这些操作。

现在我的问题是: 为了获取 ID,我使用 $(this).find('a').attr('href') 然后使用简单的 show() 来显示相应的内容分区 如果我使用 $(this).attr('href') 来获取 ID,则 show() 函数将不起作用。

http://jsfiddle.net/eh4eB/

$(this). 和 $(this). 之间有什么区别? find('a').attr('href') AND $(this).attr('href')

I've created a simple tab navigation using css and javascript.
It's working fine altough there is one thing I'd like to clarify.

Each list item (tabs) has an attribute of “href” that matches the ID of the “tab content” div. Then I use jQuery pull off the actions.

Now my question:
In order to get the ID I use $(this).find('a').attr('href') then a simple show() to display the appropriate content div.
If I use $(this).attr('href') to get ID the show() function won't work.

http://jsfiddle.net/eh4eB/

What is the the difference between $(this).find('a').attr('href') AND $(this).attr('href')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦过后 2024-11-18 18:37:04

由于您的 click 处理程序位于

  • 上,因此 $(this)
  • 周围的 JQuery 包装器。 元素。当然,
  • 元素没有 href 属性,因此其中不会有任何内容。
  • 另一方面,$(this).find('a') 将为您提供一个 JQuery 对象,其中包含 内的所有 元素

  • - 并且 .attr('href') 将从第一个属性返回 href 属性。
  • Because your click handler is on the <li>, $(this) is a JQuery wrapper around the <li> element. And of course <li> elements don't have href attributes so there won't be any content in them.

    On the other hand, $(this).find('a') will give you a JQuery object containing all of the <a> elements inside the <li> - and the .attr('href') will return the href attribute from the first of those.

    静谧 2024-11-18 18:37:04

    为什么不使用 jQueryUI 的选项卡?那会容易得多。

    你的代码就是这样的:

    <script>
    $(function() {
        $( "#admin-nav" ).tabs();
    });
    </script>
    
    

    Why aren't you also using jQueryUI's Tabs? That would be so much easier.

    Your code would be just this:

    <script>
    $(function() {
        $( "#admin-nav" ).tabs();
    });
    </script>
    
    
    感情洁癖 2024-11-18 18:37:04

    您的 click() 事件绑定到 li 元素,因此处理程序中的 this 也是 li 元素。因此,您需要先找到子 a 元素,然后才能确定其 href 属性。

    Your click() event is bound to the li elements, so inside the handler this is also the li element. You therefore need to find the child a element before you can determine its href attribute.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文