【问题标题】:dom structure movement with jquery用jquery移动dom结构
【发布时间】:2011-10-18 13:07:55
【问题描述】:

我正在创建一个 jquery 脚本,如果单击某个链接元素,则以下 div 的 css 会更改。我的问题是,下一个元素在“父 dom 树”中,我不知道如何选择它。

如果你看看我下面的 html 示例,你就会知道什么意思.. ;)

<div class="box">
                        <div class="rentenBox"><a href="#" title="Info"><span class="hide">Info</span></a></div>
                        <div class="obereZeile"></div>
                        <div class="untereZeile"></div> 

</div> <!-- .box -->
<div class="blueButtonInfo"></div>

所以,如果用户点击 .rentenBox a,.blueButtonInfo 的 css 应该会改变。

到目前为止,这是我的 jQuery:

$('.rentenBox a').click(function(event) {
                event.preventDefault();
                $(this).next('.blueButtonInfo').css('display', 'none');

            })

感谢您的每一次帮助。谢谢! :)

【问题讨论】:

    标签: jquery dom select click


    【解决方案1】:
    $(this).parent().next().css('display', 'none');
    

    $(this).parent().siblings('.blueButtonInfo').css('display', 'none');
    

    如果您定位的 div 始终位于当前 div 的父级之后,则第一个将起作用。如果 div 的类是 blueButtonInfo,则第二个将始终有效。

    【讨论】:

      【解决方案2】:

      blueButtonInfo div 在box 旁边,所以你必须向上 2 个元素,然后调用 next

      $(this).parent().parent().next('.blueButtonInfo').css('display', 'none');
      
      //or
      
      $(this).parents('.box').next('.blueButtonInfo').css('display', 'none');
      

      【讨论】:

      • 你只需要上一个元素。
      • 不,你必须上去 2 因为$(this) 指的是a
      • 您的两个解决方案都有效。 :) 但我还有一个问题。它适用于 .css('display', 'none') 但是当我希望它从默认 css display:none;状态为 .css('display', 'visible');它不起作用..你知道问题可能是什么吗?谢谢。
      • 应该是css('display', 'block');
      • 哦,不,我很抱歉。我混淆了。洛克里扎克是对的。公民 conn 的解决方案没有......但无论如何都谢谢你们! :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多