getElementsByTagName в элементе javascript - PullRequest
7 голосов
/ 24 марта 2012

Почему следующий код возвращает 0?

 <p id="g">
 <div>kk</div>
 <div>ee</div>
 <div>jff</div>
 </p>


  <script type="text/javascript">
  var ii = document.getElementById("g");
  var hh = ii.getElementsByTagName('div');
  document.write(hh.length);
  </script>

1 Ответ

14 голосов
/ 24 марта 2012

Потому что вы не можете иметь <div> в <p>. Абзацы могут иметь только встроенные элементы как дочерние элементы.

Как только синтаксический анализатор обнаруживает <div>, он автоматически закрывает <p>.

Сравните

<p id="g">
  <span>kk</span>
  <div>ee</div>
  <div>jff</div>
</p>

<script type="text/javascript">
  var ii = document.getElementById("g");
  var hh = ii.getElementsByTagName('span');
  alert(hh.length);
</script>​
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...