【问题标题】:jQuery(this) : how to toggle the next table? [closed]jQuery(this):如何切换下一个表? [关闭]
【发布时间】:2012-10-03 11:56:16
【问题描述】:

当用户点击链接时,我想显示/隐藏以下结构的表格:

<div class="container">
    <div class="banner">
        <h2>$header</h2>
    </div>
    <p class="howto">balbalblablablalbalbalbalblabla <a href='#'>link</a></p>
        <table id=table_action class="widefat">
        ...
        </table>
</div>

我试过了,但它不起作用,我不明白为什么:

jQuery(document).ready(function(){  
    jQuery('.howto a').click(function() {
        jQuery.(this).next('table').toggle();
    });
});

对我来说: jQuery.(this)指的是触发了事件的dom元素,还有table元素,我的sn-p怎么了?

谢谢, 本

【问题讨论】:

    标签: javascript jquery dom this


    【解决方案1】:

    您的链接$('.howto a') 位于.howto 内。在链接上调用.next() 会返回虚无。

    相反,请在 .click() 中尝试此操作:

    jQuery(this).parent().next('table').toggle();
    

    编辑

    另外,您可能需要添加.preventDefault() 以防止在单击链接时发生默认行为:

    jQuery('.howto a').click(function(event) {
        event.preventDefault();
        jQuery(this).parent().next('table').toggle();
    });
    

    【讨论】:

    • 好的,这行得通。谢谢你的解释。需要使用父级退出“howto”类以获取下一个表。非常感谢,问候本
    • 如果您可以将我的答案标记为已接受,我将非常高兴:)
    • 当然!谢谢,祝你有美好的一天!本。
    【解决方案2】:

    Working fiddle

    代码:

     jQuery(this).parent().next('table').toggle();
    

    您的代码中有两个问题:

    1. jQuery.(this) 而不是 jQuery(this)
    2. 在锚元素上调用.next('table'),但表格位于父段落元素旁边。在.next 之前调用.parent() 可以解决此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2023-03-31
      相关资源
      最近更新 更多