无法获得div的最后一个孩子

时间:2019-05-28 15:53:49

标签: javascript jquery

我正在尝试获取B的最后一个孩子,但失败了。这是我使用的代码,但它始终返回<div>

undefined

怎么了?我该如何解决?

这应该是最后一个元素:

$('#output:last-child').attr('class');

3 个答案:

答案 0 :(得分:3)

使用子组合选择器: $('#output > :last-child').attr('class');

编辑:添加了示例

#output > :last-child {
  height: 20px;
  width: 20px;
  background: red;
  border: 1px solid green;
}
<div id="output">
  <div>....</div>
  <div>....</div>
  <div>....</div>
</div>

答案 1 :(得分:1)

您的选择器正在检索是其父级的最后一个子级的#output元素。

从描述中听起来,您想在 $('#output div:last-child').attr('class'); 中找到最后一个孩子,因此您需要分离选择器:

val stdout = new StringBuilder
val stderr = new StringBuilder

var commandSeq = Seq("beeline"
  , "-u"
  , ConfigProvider.config.BeelineConfig.Url
  , "-n"
  , ConfigProvider.config.BeelineConfig.UserName
  , "-p"
  , ConfigProvider.config.BeelineConfig.Password
  , "--outputformat=xmlattr"
  , "-f"
  , filePath)

hiveConfArgs.foreach(arg => {
  commandSeq = commandSeq :+ "--hivevar"
  commandSeq = commandSeq :+ arg
})

commandSeq ! ProcessLogger(stdout append _, stderr append _ + "\n")

(stdout.toString, stderr.toString)

答案 2 :(得分:-2)

您可以尝试使用children()last()函数:

$('#output').children().last().attr('class')

要专门过滤子类型,可以在children()调用中指定类型:

...children('div')...

使用选择器可能会更快。