Как приветствовать с помощью jQuery?

#javascript #html #jquery

Вопрос:

Я хочу сделать это, введя свое имя во вводе, затем нажав кнопку, и под вводом появится тег h1: Привет (мое имя)! Я не знаю, как это решить.

Вот мой html-код и код jQuery:

 <form>
    <label for="Name">Name</label>
    <input type="text" id="Name">
    <button id="button" type="button">Click</button>
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    $('#button').click(function () {
        $('body').append('<h1></h1>')
        $("h1").append('Hello')//  my name
    })
</script>
 

Комментарии:

1. Вы спрашиваете, как получить значение ввода текста? $("#Name").val()

Ответ №1:

Вам нужно получить значение из #Name входных данных. Если у вас нет конкретной причины для выполнения этого в несколько этапов, вы можете добавить html в целом следующим образом:

 <form>
  <label for="Name">Name</label>
  <input type="text" id="Name">
  <button id="button" type="button">Click</button>
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
  $('#button').click(function () {
    if ($('#Name').val()) { //make sure the user entered something
      $('body').append(`<h1>Hello ${$('#Name').val()}!</h1>`);
    }
  });
</script> 

Обратные ссылки ` являются шаблонным литералом, они позволяют создавать строки без связывания.

`Hello ${my_name}!` против 'Hello ' my_name '!'

Ответ №2:

Чтобы получить значение input поля, вы можете использовать: $('input#Name').val(); Вместо добавления его к h1 элементу, вы можете просто установить его текст в нужное значение, в вашем случае: .text('hello ' getName) .

В случае, если посетитель допустит ошибку, вам нужно всего лишь изменить внутренний текст h1 , вместо того чтобы снова добавлять его в текст. $('h1').text();

 $('#button').click(function () {
  let getName = $('input#Name').val();
  if(!$('h1').length){
    $('body').append('<h1 class="greeting-title"></h1>');
  }
  $("h1").text('Hello ' getName)//  my name
}); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
    <label for="Name">Name</label>
    <input type="text" id="Name">
    <button id="button" type="button">Click</button>
</form> 

Комментарии:

1. Вопрос в том, как задать переменный текст из входных данных, а не проверять <h1> , существует ли он уже. Может быть, они хотят добавлять новое приветствие каждый раз, когда нажимается кнопка?

2. @poorlywritencode Вопрос не в том, был ли задан ввод или нет (поскольку неопределенность не приведет к ошибке), и не должен быть восклицательный знак? К чему этот комментарий?