@Akaero

Верно ли работает document.body.children[0].innerHTML?

Всем привет.
Есть код:
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
 <div>Пользователи:</div>
  <ul>
    <li>Маша</li>
    <li>Вовочка</li>
  </ul>
  <!-- комментарий -->
</body>
</html>


Всю жизнь думал, что
var elem = document.body.children[0].innerHTML;
вернет Пользователи: , а эту строку возвращает код
var elem = document.body.children[1].innerHTML;
Индексы начинаются с нуля, вроде. Чего я не знаю?

линк на песочницу
  • Вопрос задан
  • 400 просмотров
Решения вопроса 2
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Тут всё дело в том, что jsfiddle сам дополняет введённый текст. На самом деле в iframe приходит следующее:
spoiler
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="robots" content="noindex, nofollow">
  <meta name="googlebot" content="noindex, nofollow">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script type="text/javascript" src="/js/lib/dummy.js"></script>
    <link rel="stylesheet" type="text/css" href="/css/result-light.css">
  <style type="text/css">
  </style>
  <title></title>
<script type='text/javascript'>//<![CDATA[
window.onload=function(){
var elem = document.body.children[0].innerHTML;
alert(elem);
}//]]> 
</script>
</head>
<body>
  <!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
<div>Пользователи:</div>
  <ul>
    <li>Маша</li>
    <li>Вовочка</li>
  </ul>
  <!-- комментарий -->
  <script>
    // ... ваш код
  </script>
</body>
</html>
  <script>
  // tell the embed parent frame the height of the content
  if (window.parent && window.parent.parent){
    window.parent.parent.postMessage(["resultsFrame", {
      height: document.body.getBoundingClientRect().height,
      slug: "gggrope6"
    }], "*")
  }
</script>
</body>
</html>

Браузер удаляет повторные html, head и body, и первым потомком body (с индексом 0) становится тэг meta.
Вообще, опираться на структуру - не самый надёжный вариант. Небольшое изменение в коде html и надо менять все индексы. Используйте id для уникальных элементов и class для однотипных.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы