使用jquery .parent()和其他亲属

时间:2016-06-22 15:48:03

标签: jquery

我正在寻找一种方法来使类divcontainer1中的文本变为粗体,但是我并不完全确定如何在不影响container2中的div的情况下执行此操作,并且影响内部和外部一个。我确定这可以用一些parent()。siblings()。children()。children-combination,但我不完全确定如何

示例HTML

<divcontainer1>
  <div>
    <div class="a button">
      button
    </div>
  </div>
  <div>
    <div>
      <div class="a">
        affect
      </div>
    </div>
  </div>
  <div>
    <div class="a">
      affect
    </div>
  </div>
  <div>
    <div class="b">
      don't affect
    </div>
  </div>
</divcontainer1>
<divcontainer2>
  <div class="a">
    don't affect
  </div>
</divcontainer2>

示例JS

$(document).ready(function(){
    $('.button').click(/* make all text inside container 1 bold*/)
});

我尝试过parent()。parent()。children()。children()。css(&#39; font-weight&#39;,&#39; bold&#39;),但是没有似乎工作

3 个答案:

答案 0 :(得分:1)

$("divcontainer1").find(".a").css("font-weight", "700");

答案 1 :(得分:1)

使用.parents查找包含该按钮的divcontainer1。然后使用.find选择容器中的锚元素。

$('.button').click(function(){
    $(this).parents('divcontainer1').find('.a').css('font-weight', 'bold'); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<divcontainer1>
  <div>
    <div class="a button">
      button
    </div>
  </div>
  <div>
    <div>
      <div class="a">
        affect
      </div>
    </div>
  </div>
  <div>
    <div class="a">
      affect
    </div>
  </div>
  <div>
    <div class="b">
      don't affect
    </div>
  </div>
</divcontainer1>
<divcontainer2>
  <div class="a">
    don't affect
  </div>
</divcontainer2>

注意:使用单字母类名称不是一个好习惯。此外,您似乎可能真的想要使用buttona元素而不仅仅是div s。

答案 2 :(得分:1)

您可以使用parent导航到divcontainer,然后找到类“a”的元素,只选择包含按钮的div中的元素。

212, 2121
623, 6226
259, 2590
[...]