jquery доступ к элементу через. html () возвращает неопределенное значение - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в jquery, я пытался получить доступ к элементу ввода через id, я вижу, что он возвращает "undefined". Я обернул его внутри document.ready; результат тот же, вот фрагмент кода

let input;

function maintest() {
   input = $("<input>").attr({"id":"test"});
   input.append("#mainDiv");
   $(document).ready( function(){
     alert($("#test").html());
   });

}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<body onload="maintest()">
  <div id="mainDiv"></div>
</body>

Я удивлен, что отображается «неопределенный» вместо отображения всего элемента ввода, когда я предупреждаю

1 Ответ

3 голосов
/ 12 февраля 2020

У вас есть несколько проблем:

  1. Вы никогда ничего не назначали на input до вызова $(input). Если вы пытаетесь создать элемент ввода, вам нужно поместить буквальную строку <input> в аргументы.
  2. Вы должны использовать appendTo(), а не append().
  3. * Элементы 1013 * не являются контейнерами, в них нет HTML, поэтому .html() ничего не вернет (это эквивалентно .innerHTML, а не .outerHTML). Я изменил сценарий для использования $("#mainDiv").html(), затем он показывает <input>, содержащийся в нем.

function maintest() {
  let input = $("<input>").attr({
    "id": "test"
  });
  input.appendTo("#mainDiv");
  $(document).ready(function() {
    alert($("#mainDiv").html());
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<body onload="maintest()">
  <div id="mainDiv"></div>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...