如何让孩子从父母那里得到没有选择孩子的孩子?

时间:2013-06-07 20:13:49

标签: javascript jquery

我有一个用例,我有一个父div只有一个孩子,孩子可能是强壮的,div,标题或任何其他...我需要一个通用的解决方案来获得innerHTML孩子" Hello World"

 <div id="parent">
  <strong>Hello World</strong>
 </div>

在jquery或js中执行此操作的有效方法是什么?

7 个答案:

答案 0 :(得分:3)

document.getElementById('parent').children[0].innerHTML

答案 1 :(得分:1)

$("#parent").children();
$("#parent").children(':first');

答案 2 :(得分:1)

如果它始终是第一个孩子,您可以$('#parent').children().first().text(),或者为了让所有孩子$('#parent').children().text()

答案 3 :(得分:1)

使用jQuery试试这个: -

$("#parent").contents().filter(function(){
   return this.nodeType == 3;
});

答案 4 :(得分:0)

在jQuery中它很容易......

      $('#parent').children('strong').html();

答案 5 :(得分:0)

jQuery的:

$("#parent").children().html()

Just JavaScript:

document.getElementById("parent").childNodes[0].innerHTML

答案 6 :(得分:0)

使用原生childNodes[0]的建议存在错误。

在您的示例HTML中,有一个textNode出现在您想要的<strong>元素之前。您需要循环遍历childNodes,直到找到非textNode。如果您尝试.firstChild,也会遇到同样的问题。

本机DOM .children属性可以在您的示例中使用,但要小心:在IE8和之前的版本中,它还包含注释节点。

jQuery的.children()方法为您过滤掉文本节点,因此这是一种更简单的方法。

使用jQuery的contents()结合.filter来过滤掉文本节点的建议可行,但是没有必要;您只需使用.children(),然后让它完成过滤文本节点的工作。