在IE8中获得div的最后一个孩子?

zsh*_*arp 19 javascript css jquery css-selectors internet-explorer-8

是否有另一种方法来获取除使用之外的div元素的最后一个子元素div:last-child,这至少在IE8中不起作用?

cle*_*tus 55

在jQuery中很简单:

$("div :last-child")
Run Code Online (Sandbox Code Playgroud)

在纯CSS中,它无法完成.

否则你会遇到在Javascript中遍历DOM的问题.

另请注意区别:

  • "div :last-child":div的每一个孩子; 和
  • "div:last-child":每个div 都是最后一个孩子.

  • 很好的答案,特别是解释选择器的差异. (5认同)
  • 你是什​​么意思"在纯CSS中无法完成"?你是说"不是每个浏览器都支持它"或其他什么? (2认同)
  • 你回答的唯一问题是它没有解决当他已经选择了父元素时要做什么,例如他正在链接:$(".mydiv").dostuff().(以某种方式得到最后一个孩子).dochildstuff( ).我相信有两种方法可行:.children().last()和可能.children(":last-child") (2认同)
  • @MikeJ` $(".mydiv").doStuff().children().eq(-1).doChildStuff()`可能是最优雅的. (2认同)

Dan*_*Lew 21

不幸的是,我不知道如何在不使用的情况下在CSS中执行此操作:last-child,(如您所述)在IE中失败.

如果你在谈论javascript,那么可以使用Node.lastChild:

var div = document.getElementById("mydiv");
var lastChild = div.lastChild;
Run Code Online (Sandbox Code Playgroud)


Mar*_*urd 6

使用jQuery查找适当的元素: $("div:last-child").addClass("last-child");

然后使用CSS指定演示文稿: div .last-child { /* your rules */ }