好的。我正在尝试通过 CSS 选择器获取 javascript 中的元素。要通过自定义元素获取一个,我知道就像“element[custom-name="Literal name"]”。 好的。这行得通。但现在我需要得到第二个。我的意思是我有一些元素具有确切的自定义名称,并且我需要为每个人应用不同的规则(这里只有 5 个)。
如何选择其他的?是否可以通过 CSS 选择它们?
PS:它们位于随机位置,所以可能第一个是一次第 5 个元素,如果我刷新页面,它可能是容器内的第 10 个元素。
PS2:不,在我的情况下不可能更改 HTML :( 。我唯一可以更改的代码是 CSS 和 javascript。
感谢您阅读我的文章! :D
最佳答案
假设您不能通过另一个与顺序无关的因素来选择特定的,您可以使用伪选择器 :nth-child 强>。在您的情况下,完整的 CSS 选择器将是 element[custom-name="Literal name"]:nth-child(2)
- 替换 2
对于您认为合适的任何其他数字。一般来说,仅按文档中的位置进行选择并不是最好的主意,因为位置可能比属性更改得更频繁 - 但无论如何,有一个纯 CSS 解决方案!
请注意,这仅在您正在使用的元素是共同父元素的 唯一 子元素时才有效 - 如果您正在寻找与整个查询一般匹配的第二个元素整个文档,无法使用 CSS 选择器做到这一点。相反,您可以确保为每个元素添加一个唯一类或其他区分属性,或者简单地使用 querySelectorAll
- 在这种情况下,您可以使用以下小片段获取第二个元素:document.querySelectorAll('element[custom-name="Literal name"]')[1]
.
关于javascript - 通过自定义数据/属性选择第二个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44282350/