元素的直系子代与直系子代有什么区别

时间:2019-02-14 03:50:51

标签: html css

类别为m = inputString(fopen("filename.txt", "r"), 512)的{​​{1}}是类别为div的{​​{1}}的直接子代吗?为什么或者为什么不?我很困惑,直系子女与直系子女的含义相同吗?

altfoo

2 个答案:

答案 0 :(得分:2)

是的,“直子”与“直子”含义相同,并且元素.altfoo既是.foo的直子又是直子。可以通过 child combinator > 来确认:

.foo > .altfoo {
  color: red;
}
<div class="foo">
  <!-- 1 -->
  <p></p>
   <!-- 2 -->
  <p></p>
  <div class="altfoo">
    <!-- 3 -->
    Altfoo
    <p></p>
 </div>
</div>

您的示例中的<p></p>只是.altfoo兄弟姐妹,并且也是 .foo的直接子代

直接子元素是子元素,在层次结构方面,该元素紧随父元素下方。也就是说,不是孙子或曾孙。

例如,请注意,当元素将层次结构中的两个元素分开时,.foo > .altfoo CSS选择器将不再定位该元素:

.foo > .altfoo {
  color: red;
}
<div class="foo">
  <div class="middle">
    <div class="altfoo">
      Altfoo
    </div>
  </div>
</div>

答案 1 :(得分:0)

您可以通过两种方式访问​​子元素。一种是使用DOM属性“ children”,它仅提供type元素的直接子节点。而“ childNodes”功能可提供所有级别的所有级别的节点,包括注释和文本节点。可以运行下面的示例代码以更好地理解该语句。

<htmL>
<head>
</head>
<body>
<div class="foo">
    <p></p>
    <p></p>
    <div class="altfoo">
        <p></p>
    </div>
</div>
</body>

<script type="text/javascript">
(function(){
var c = document.getElementsByClassName("foo")[0].children; 
//var c = document.getElementsByClassName("foo")[0].childNodes();


var i;
  for (i = 0; i < c.length; i++) {
    alert( c[i].outerHTML);
  }

})();
</script>

</html>