Я хотел бы настроить таргетинг на определенную группу текстовых входов на основе их ранее существовавших значений и заменить их значения и вставить ярлык перед ними с помощью оператора switch. Единственная проблема, с которой я столкнулся, - это ориентация на отдельные поля ввода. Я не был точно уверен, что поставить для них часть дела, чтобы сценарий идентифицировал их и внесет изменения.
HTML
<input id="firstname" type="text" value="firstname"></input>
<input id="lastname" type="text" value="lastname"></input>
<input id="email" type="text" value="email"></input>
Javascript
var form = $('input[type="text"]');
switch (form) {
case
$('form').attr('value', 'First Name').insertBefore('<label for=\"firstname\">First Name</label>');
case
$('form').attr('value', 'Last Name').insertBefore('<label for=\"lastname\">Last Name</label>');
case
$('form').attr('value', 'Email').insertBefore('<label for=\"email\">Email Address</label>');
}
Я почти уверен, что это то, что вам нужно: http://jqversion.com/#!/Rskx1fa/1
$('input[type="text"]').each(function(){
switch($(this).attr('id')) {
case 'firstname':
$('<label for="firstname">First Name</label>').insertBefore($(this));
$(this).val('First name');
break;
case 'lastname':
$('<label for="lastname">Last Name</label>').insertBefore($(this));
$(this).val('Last name');
break;
}
});
Я действительно не понимаю, почему вы выбрали корпус коммутатора. Кажется мне лучше использовать цикл и вставить метку, используя их значение как таковое: (предполагая, что вы используете jquery)
$('input[type="text"]').each(function(){
$(this).insertBefore('<label for="'+ $(this).attr('name') + '">' + $(this).val() + '</label>');
});