gpt4 book ai didi

javascript - JQuery - 获取类在 DOM 中任何位置向上移动的第一次出现

转载 作者:行者123 更新时间:2023-12-02 22:45:43 25 4
gpt4 key购买 nike

我有几个 class="reply_count"实例,大多数嵌入在其他元素中。我想要一种方法来向上遍历 DOM 中的任何位置以获取第一个实例,并获取文本值。

在下面的示例中,我尝试使用 prevAll 并获取其中的第一个。但是,它无法识别 DIV 中的内容。这就是我想要选择的。我假设 prevAll 适用于同一级别的元素,但不适用于嵌套的元素?

我的实际代码要复杂得多,但下面只是一个简单的意图示例。

向上访问类的第一次出现的另一种方法是什么,无论它在哪里以及如何嵌套在其他元素中?

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<div class="reply_count">15</div>
<div class="reply_count">10</div>
<div><span class="reply_count">5</span></div>
<div id="click" style="cursor: pointer;">Click Here</div>
<div class="reply_count">2</div>
<div class="reply_count">1</div>
<script>
$("#click").click(function(){
value = $(this).prevAll( ".reply_count:first" ).text();
alert(value);
});
</script>
</body>
</html>

结果是:10。我想要 5。

最佳答案

你可以这样做:

$(".click").click(function() {
var c = $(this).parent().find(".reply_count").add(this);
var t = $(c).index(this);
var value = $(c).eq((t-1)).text();
console.log(value);
});

演示我添加了多个 <div class="click"所以你可以看到它工作得很好。

$(".click").click(function() {
var c = $(this).parent().find(".reply_count").add(this);
var t = $(c).index(this);
var value = $(c).eq((t-1)).text();
console.log(value);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="reply_count">15</div>
<div class="reply_count">10</div>
<div>4</div>
<div class="click" style="cursor: pointer;">Click Here</div>
<div><span class="reply_count">5</span></div>
<div class="click" style="cursor: pointer;">Click Here</div>
<div><span class="reply_count">1</span></div>

关于javascript - JQuery - 获取类在 DOM 中任何位置向上移动的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58407606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com