Как с помощью jquery скопировать значение placeholder из input и добавить его в label

Здравствуйте!

Есть следующая конструкция:

.alpha {
  padding: 10px;
  margin: 10px;
  background: #f7f7f7;
}

.alpha input,
.alpha label {
  width: 200px;
  box-sizing: border-box;
}

.omega {
  display: block;
  height: 20px;
  background: #e9e9e9;
  color: #ff0000;
  margin-top: 5px;
}
<div class="alpha">
  <input placeholder="Имя">
  <label class="omega"></label>
</div>
<div class="alpha">
  <input placeholder="Адрес">
  <label class="omega"></label>
</div>

Необходимо скопировать значение placeholder из каждого отдельного input и добавить его в label.

Сразу прописать в label нет возможности.

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

Благодарю за ответ!


Ответы (1 шт):

Автор решения: teran

ответ, казалось бы на поверхности. взять инпуты, у которых есть атрибут placeholder, обойти их всех, найти соседние label и вписать им значение

$(function(){
  $("input[placeholder]").each(function(){
     $(this).next("label").text( $(this).attr('placeholder') );
  });
})
.alpha {
  padding: 10px;
  margin: 10px;
  background: #f7f7f7;
}

.alpha input,
.alpha label {
  width: 200px;
  box-sizing: border-box;
}

.omega {
  display: block;
  height: 20px;
  background: #e9e9e9;
  color: #ff0000;
  margin-top: 5px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="alpha">
  <input placeholder="Имя">
  <label class="omega"></label>
</div>
<div class="alpha">
  <input placeholder="Адрес">
  <label class="omega"></label>
</div>

Если инпуты снабдить id, а лейблы атрибутом for, то можно не привязываться к структуре DOM. но это видимо не ваш случай

→ Ссылка