13

我正在尝试找到一种方法来选择#inner3……</p>

 <div id="outer">
      <div id="inner1"> </div>
      <div id="inner2"> </div>
      <div id="inner3"> of interest </div>
      <div id="inner4"> </div>
 </div>

...从最后一个 ( #inner4) 开始计数,因为有时#2不存在 ...</p>

 <div id="outer">
      <div id="inner1"> </div>
      <div id="inner2"> of interest </div>
      <div id="inner3"> </div>
 </div>

并且只有 3 个项目(因此#inner3变为#inner2)。

笔记,#id为了清楚起见,并没有真正出现在我的工作中。

我现在正在使用body > .. > div:nth-child(3),但如上所述,从顶部开始计数对我​​来说是个问题。

有什么解决办法吗?

4

3 回答 3

19

你应该能够抓住你的元素

 documentObject.lastChild.previousSibling

documentObject你在哪里parent

编辑

谢谢大卫托马斯:更准确的是 previousElementSibling因为它返回一个元素而不是文本节点:

documentObject.lastChild.previousElementSibling

资料来源:
W3Schools
developer.mozilla

于 2013-10-12T09:51:39.657 回答
3

如果我没有正确地理解你,你可以从最后算起:nth-last-child()

.outer *:nth-last-child(2){
  color: green;
}
于 2013-10-12T09:51:57.853 回答
1

文本节点在 lastChild 和 previousSibling 中都可能是一个问题 这对我有用:

documentObject.lastElementChild.previousElementSibling

在这里找到解决方案的另一部分:https ://stackoverflow.com/a/18341945/8486854

于 2021-02-15T11:02:05.690 回答