gpt4 book ai didi

javascript - Vue.js 使用伪选择器选择 div 中的最后一个元素

转载 作者:行者123 更新时间:2023-11-28 12:52:34 27 4
gpt4 key购买 nike

我在使用 Vue.js 时遇到问题,无法选择最后一个 <hr/>在 div 中添加标签,以便我可以将其删除。

我的目标是删除最后一个 <hr/> div 中的标签。

Here is an example of the issue :

JS

<div id="app">
<div v-for="(item, i) in list" class="exampleclass">
<div>
<button>btn {{i}}</button>
</div>
<input placeholder="sometext"></input>
<hr /> // I want to remove the last instance of this element
</div>
</div>

CSS:

hr {
border-color:green;
}

/*
I want to display: none this last hr element, but I'm making it
blue here for clarity of the issue. See the image below
*/
.exampleclass > hr:last-of-type {
border-color:blue;
}

这是以下代码的输出: enter image description here

正如你所看到的,而不是只有最后一个 <hr/>元素是蓝色的,每个元素都是蓝色的。我尝试过将类移至父级 div,但没有成功。

我能够在普通 javascript 中实现正确的行为,即 you can see here 。但由于某种原因我无法让它在 Vue 中工作。

如何选择最后一个hr Vue.js 中 div 内的元素?

最佳答案

这实际上不是 Vue 的问题,而是选择器作用于哪些元素的问题。您使用的选择器正在选择具有 .exampleclass 类的每个元素内的最后一个 hr 元素。您真正想要的是最后一个 .exampleclass 元素的 hr

您应该能够通过以下方式做到这一点:

.exampleclass:last-of-type > hr {
border-color: blue;
}

这是一个完整的示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<style>
hr {
border-color: green;
}

.exampleclass:last-of-type > hr{
border-color: blue;
}
</style>
</head>
<body>
<div id="app">
<div v-for="(item, i) in list" class="exampleclass">
<div>
<button>btn {{i}}</button>
</div>
<input placeholder="sometext"> {{ item }} </input>
<hr />
</div>
</div>
</body>
<script>
var app = new Vue({
el: '#app',
data: {
list: ['itemOne', 'itemTwo', 'itemThree']
}
});
</script>
</html>

关于javascript - Vue.js 使用伪选择器选择 div 中的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59792408/

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