【问题标题】:Checking for a css class on the nearest sibling() div with jQuery?用jQuery检查最近的兄弟()div上的css类?
【发布时间】:2011-02-09 21:49:16
【问题描述】:

在 jQuery 中有没有办法返回最近的兄弟() div 并检查当前类?

我有一个可视的垂直项目列表,其中一些项目要么有 1px 边框(将它们分开 - 高级项目),要么根本没有边框(标准项目)。虽然将高级物品夹在两个标准物品之间看起来很棒,但当两个或三个高级物品堆叠在一起时,它们之间的边框最终会变成 2px 厚。

我正在寻找一种方法,使用 jQuery 或其他方式来检查当前 div 上方的 <div class="item"> 是否具有类 features-item(因此检查 div 是否等于 <div class="item featured-item">)。从那里,我将设置另一个类名,将边框顶部设置为 0px,并使视觉效果更好一点。

谁能帮帮我?对不起,如果这个问题很复杂,很难解释!

【问题讨论】:

    标签: javascript jquery css siblings


    【解决方案1】:
    if ($("#current-div").prev().hasClass("someClass")) {
      // logic here
    }
    

    【讨论】:

      【解决方案2】:

      .prev() 为您提供前一个兄弟。你可以这样做:

      if(element.prev().hasClass('featured-item'))
      

      if(element.prev('.featured-item').length > 0)
      

      【讨论】:

        【解决方案3】:

        我不确定您是否要检查兄弟节点或父节点。无论如何,如果“above”表示父级,则可以这样做:

        if( $('div').closest('.item').hasClass('.featured-item') )  { }
        

        对于直接父母,您可能希望使用 .parent() 而不是 .closest() 如果这些元素处于同一级别并且“above”表示“before”,请使用.prev()

        if( $('div').prev(.item).hasClass('.featured-items') ) { }
        

        参考:.prev().closest().parent()

        【讨论】:

          【解决方案4】:

          转发.nextAll([selector])或返回.prevAll([selector])或双向.siblings([selector])

          如果 div 确实是一个兄弟,那么你应该能够做到

          if($(this).prev('.item.featured-item').length){
              // yes it is featured
          }
          else{
             no, not featured
          }
          

          【讨论】:

            【解决方案5】:

            如果我没看错,thisfiddle 应该就是你要找的东西。

            【讨论】:

              猜你喜欢
              • 2013-11-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-08-10
              • 1970-01-01
              相关资源
              最近更新 更多