0

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

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

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

4

7 回答 7

3
document.getElementById('parent').children[0].innerHTML
于 2013-06-07T20:16:28.053 回答
1
$("#parent").children();
$("#parent").children(':first');
于 2013-06-07T20:15:52.790 回答
1

如果它总是第一个孩子,你可以做$('#parent').children().first().text(),或者,让所有孩子,$('#parent').children().text()

于 2013-06-07T20:15:56.543 回答
1

用 jQuery 试试这个:-

$("#parent").contents().filter(function(){
   return this.nodeType == 3;
});
于 2013-06-07T20:18:11.293 回答
0

使用本机的建议childNodes[0]有一个错误。

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

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

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

使用 jQuery 的contents()组合.filter来过滤掉文本节点的建议是可行的,但没有必要;您可以.children()改为使用并让它完成过滤文本节点的工作。

于 2013-06-07T20:24:36.233 回答
0

在 jQuery 中,这很容易......

      $('#parent').children('strong').html();
于 2013-06-07T20:16:25.433 回答
0

jQuery:

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

只是 JavaScript:

document.getElementById("parent").childNodes[0].innerHTML
于 2013-06-07T20:16:39.890 回答