Jquery最近 - 它是如何工作的

时间:2014-11-20 16:25:36

标签: jquery closest

我已经搜索并提到了之前提出的问题,但可能是我太愚蠢了解问题:)。

我指的是最接近的jQuery实现,在阅读之后我尝试在一个非常简单的虚拟示例上实现它。但不知何故,我无法获得价值。以下是我正在使用的代码

<div> 
 <div class="firstChild">1234</div>
 <div class="parentDiv">
    <div class="firstChild">1234</div>
    <div class="secondChild">Hello</div>
    <div class="thridChild">Bye</div>
</div>
</div>

和我正在使用它的jQuery代码

$(document).ready(function(){  
  var value = $( ".parentDiv" ).closest( ".firstChild" ).text();
  alert(value);
});

但是我得到的所有值都是空白的。 当我尝试使用

 var value = $( ".parentDiv" ).closest( "div" ).text();

我从所有三个孩子的div中获得了值(1234 Hello Bye)作为提醒

如何使用最近的选择器来获取firstChild的值

1 个答案:

答案 0 :(得分:0)

使用.prev()或。parents()

var value = $(".parentDiv").parents("div").children(".firstChild").text();
console.log(value);

var value = $(".parentDiv").prev(".firstChild").text();
console.log(value);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <div class="firstChild">12345</div>
  <div class="parentDiv">
    <div class="firstChild">1234</div>
    <div class="secondChild">Hello</div>
    <div class="thridChild">Bye</div>
  </div>
</div>

在您的示例中使用.closest()的问题是,与.parents()不同,.closest()将测试自身,然后上移DOM。所以.closest('div')将选择不是你想要的parentDiv div。你总是可以使用.closest()并指定一个没有类的div,但是当其他两个选择器更合适时没有意义。