我有一个用例,我有一个父div只有一个孩子,孩子可能是强壮的,div,标题或任何其他...我需要一个通用的解决方案来获得innerHTML孩子" Hello World"
<div id="parent">
<strong>Hello World</strong>
</div>
在jquery或js中执行此操作的有效方法是什么?
答案 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()
,然后让它完成过滤文本节点的工作。