Код JavaScript не работает, когда я использую его в функции - PullRequest
0 голосов
/ 16 мая 2018

Я начинаю использовать javascript, и моя проблема в том, что: У меня есть этот код, который работает без проблем:

<table class="table table-striped table-bordered table-list" id="table">
    <tbody id="tbody">
        <script>
            var btn = document.createElement("BUTTON");// Create a <button> element
            btn.setAttribute('type', 'button'); // input element of type button
            btn.setAttribute('value', 'prueba');
            btn.setAttribute('id', 0);

            var t = document.createTextNode("prueba");       // Create a text node
            btn.appendChild(t);                                // Append the text to <button>
            document.body.appendChild(btn);
        </script>
    </tbody>
</table>

Но мне нужно использовать его несколько раз на одной странице. Поэтому я попытался добавить это к функции, например:

<script>
   function prueba(){

        var btn = document.createElement("BUTTON");
        .......
        document.body.appendChild(btn);
   };
</script>

Проблема в том, что я вызываю эту функцию с помощью:

<script>prueba();</script>

Код не показывает никаких кнопок. Когда тот же код находится за пределами функции, это работает, но когда я добавляю этот код внутри функции, это не работает.

Как я могу это решить?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

РЕДАКТИРОВАТЬ: Из комментария Кевина Баучерса.

Вы можете назвать это onload так:

window.addEventListener('DOMContentLoaded', prueba())

function prueba() {
  var btn = document.createElement("BUTTON"); // Create a <button> element
  btn.setAttribute('type', 'button'); // input element of type button
  btn.setAttribute('value', 'prueba');
  btn.setAttribute('id', 0);
  var t = document.createTextNode("prueba"); // Create a text node
  btn.appendChild(t); // Append the text to <button>
  document.body.appendChild(btn)
}
<table class="table table-striped table-bordered table-list" id="table">
  <tbody id="tbody">
  </tbody>
</table>
0 голосов
/ 16 мая 2018

Вы должны вызывать свою функцию, когда DOM готов.

<script>window.onload = prueba;</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...