直接在dom路径中查找元素

Hai*_*ood 3 jquery dom

我的dom结构看起来像(虽然复杂得多)

<div>
  <div>
    <div>
      <div class="remaining">132</div>
    </div>
  </div>
  <div>
    <button>clicky</button>
  </div>
</div>
<div>
  <div>
    <div>
      <div class="remaining">142</div>
    </div>
  </div>
  <div>
    <button>clicky</button>
  </div>
</div>
<div>
  <div>
    <div>
      <div class="remaining">152</div>
    </div>
  </div>
  <div>
    <button>clicky</button>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

正如你可以看到带有类的div不remaining直接在相对按钮的dom路径中.

如何在单击按钮时将相对remainingdiv增加1?

Fel*_*ing 7

给普通父母一些有意义的课:

<div class="meaningful">
  <div>
    <div>
      <div class="remaining">152</div>
    </div>
  </div>
  <div>
    <button>clicky</button>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后你可以使用.closest().find():

$('button').click(function() {
    var $remaining = $(this).closest('.meaningful').find('.remaining');
    // change text...
});
Run Code Online (Sandbox Code Playgroud)


Gab*_*oli 5

你可以找到包含.remainingdiv 的最近的父...

$('button').click(function() {
    var $remain = $(this).closest(':has(div.remaining)').find('.remaining');
    $remain.text( parseInt($remain.text(),10) + 1);
});
Run Code Online (Sandbox Code Playgroud)

演示http://jsfiddle.net/gaby/ujW2e/