【问题标题】:Using JQuery selectors and "this" for dynamic elements对动态元素使用 JQuery 选择器和“this”
【发布时间】:2023-04-06 12:39:01
【问题描述】:

我有一个包含大量文档的页面,客户希望用户能够点击页面上列出的每个文章/项目,并在其下方打开一个小的详细信息窗格来展示内容。

我知道这很容易做到,尤其是使用 JQuery,但我并不精通该语言,并试图尝试使用这种动态功能。有超过 50 个文档,因此使用“this”并试图保持动态而不是显式调用 50 个元素中的每一个(并且还拖慢加载时间)的原因。

这是我的 HTML(我只包含了列表中的一个元素)...

    <ul class="paging" id="paging">
                <li><a href="">Economics of Ethanol and Bio-butanol as Gasoline Blendstocks<br />
                <strong>Categories:</strong> Oxygenated Fuels Issues, Bio-fuel Economics, Blendstock Valuation, Refining Economics, Refinery Modeling</a>
                <ul style="background:#f8f8f8; width:500px; height:200px;"><li>Here is the text that should appear beneath woot</li></ul>

                </li>

这是我的 JQuery 位...

    <script type="text/javascript">
        $(document).ready(function() {

            $('ul.paging > li > ul').hide();

            $('ul.paging > li').click(function() {

                $(this > ul).slideToggle();

            });
        });


    </script>

我的元素被正确隐藏了,所以我假设我的选择器没问题?无论如何,推出没有工作功能。有什么想法吗?

谢谢您,非常感谢您的所有帮助!就像我说的,这很新。 :) 再次感谢!

【问题讨论】:

    标签: javascript jquery html jquery-selectors this


    【解决方案1】:

    this 的值是一个 DOM 元素。您需要将其用作 jQuery 的 DOM 遍历方法的基础,例如 .children()

    $(this).children("ul").slideToggle();
    

    【讨论】:

    • 谢谢 - 这对我来说完美无缺。现在...我该如何创建它,以便当我打开一个,然后尝试打开另一个时,前一个会在新的打开时关闭。不知道如何从那里开始......任何想法都值得赞赏!再次感谢大家!
    • @user1873857:表示打开的是哪个类,打开时的类。然后您可以选择具有该类的当前元素,将其关闭,删除该类,将该类添加到新元素中,然后打开该类。 .addClass().removeClass() 方法用于此目的。
    【解决方案2】:

    $(this &gt; ul) 应该看起来像 $('ul', this)

    或者

    $(this).find('ul').slideToggle();
    

    【讨论】:

    • "&gt; ul" 语法已弃用。
    【解决方案3】:

    这里的选择器很可能是你的问题:

    $(this > ul).slideToggle();
    

    你最好使用这个:

    $(this).find('ul').slideToggle();
    

    我还建议默认隐藏ul 的 CSS 样式,这样它们就不会在文档就绪事件之前在屏幕上闪烁。

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多