Jquery在前一个兄弟的第三个孩子中定位一个标签

时间:2016-08-03 19:30:57

标签: javascript jquery

在jquery中遍历我并不是很好。这是我的标记:

<div class="row planarea">

  <div class="col-md-6">
    <h1>Agera Fixed Advantage 12</h1>
    Fixed Price - 12 Months<br>
    Utility: Con Edison
  </div>

  <div class="col-md-3">
    <span class="price">$0.0799</span> <span class="killowats">/ kWh</span>
  </div>

  <div class="col-md-3">
    <a class="nolink showmore" data-toggle="collapse" data-target="#24moscollapse" aria-expanded="false" aria-controls="24moscollapse">
      <div class="selectdetails">
        Details <i class="fa fa-chevron-circle-down" aria-hidden="true"></i>
      </div>
    </a>

    <label >
      <input type='radio' name="prefs" class="hidecheck" value="mail">
      <span></span>
    </label>

  </div>


</div><!--row-->

<div class="row collapse detailsrow" id="24moscollapse">
  <div class="col-xs-12 plandetailsbox">
    stuff
  </div>
</div>

我想做的是类似的事情:

$('.detailsrow').on('show.bs.collapse', function () {
  $(this).prev().closest().("a.showmore").html('<div     class="selectdetails">Details <i class="fa fa-chevron-circle-up" aria-    hidden="true"></i></div>'); 
})

我似乎无法弄清楚如何定位标签,这让人感到困惑。对于这些信息的每一个重复行,我需要针对我认为是前一个兄弟的第三个孩子中的标签。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

nearest()找到第一个父级。最接近(选择器)找到第一个选择器匹配的父。

然而,你正在寻找一个孩子。所以,你可以使用find(selector)。

改变这个:

$(this).prev().closest().("a.showmore")

对此:

$(this).prev().find("a.showmore")