我已经搜索并提到了之前提出的问题,但可能是我太愚蠢了解问题:)。
我指的是最接近的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的值
答案 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,但是当其他两个选择器更合适时没有意义。