Jquery 选项卡 href 和 ID
我使用 css 和 javascript 创建了一个简单的选项卡导航。 尽管我想澄清一件事,但它工作得很好。
每个列表项(选项卡)都有一个“href”属性,与“选项卡内容”div 的 ID 匹配。然后我使用 jQuery 完成这些操作。
现在我的问题是: 为了获取 ID,我使用 $(this).find('a').attr('href')
然后使用简单的 show()
来显示相应的内容分区 如果我使用 $(this).attr('href') 来获取 ID,则 show()
函数将不起作用。
$(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.
What is the the difference between $(this).find('a').attr('href')
AND $(this).attr('href')
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
由于您的
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 havehref
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 thehref
attribute from the first of those.为什么不使用 jQueryUI 的选项卡?那会容易得多。
你的代码就是这样的:
Why aren't you also using jQueryUI's Tabs? That would be so much easier.
Your code would be just this:
您的
click()
事件绑定到li
元素,因此处理程序中的this
也是li
元素。因此,您需要先找到子a
元素,然后才能确定其href
属性。Your
click()
event is bound to theli
elements, so inside the handlerthis
is also theli
element. You therefore need to find the childa
element before you can determine itshref
attribute.