jQuery преобразует диапазон в метку и добавляет атрибуты

#jquery

#jquery

Вопрос:

 <span>Autre contact :</span>

<label id="Autre contact :" for="">Autre contact :</label>
 

как я могу преобразовать диапазон в метку? и добавляет идентификатор и атрибут for?

Счастливой пятницы 🙂

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

1. Не отвечаю на ваш вопрос, но у вас есть пробелы в вашем id атрибуте, что делает его недействительным. Это ваше намерение?

2. -1. Вы вообще что-нибудь пробовали? Это так же просто, как javascript и jquery.

Ответ №1:

Я думаю, это сделает то, что вы ищете. Конечно, есть варианты с тем же результатом.

 //use a jquery selector to grab the span
var span = $("span");

//generate a label object
var label = $("<label id='Something' for=''>Label Text</label>");

//replace the span
span.replaceWith(label);
 

Ответ №2:

 $('span').replaceWith(function () {
  var idAndText = $(this).text();
  return '<label id="'   idAndText   ' for="">'   idAndText   '</label>';
});
 

Идентификаторы заметок не должны содержать пробелов. Поэтому вы можете захотеть изменить свой HTML или изменить идентификатор в функции выше.

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

1. 1: Это хорошо, но мне интересно, почему noones использует attr() функцию для присвоения атрибутов? Какая-то конкретная причина?

2. @JamesJohnson У меня действительно нет причин. Функция replaceWith принимает элементы HTML DOM, объекты jQuery или и строку HTML. Я просто вернул HTML-строку для быстрого понимания.

Ответ №3:

Другие предлагали аналогичные решения, но вот немного другой способ:

 $("#myspan").replaceWith(
    $("<label>").attr({ "id" : "myLabel", "value" : "foo", "for" : "otherElement" }));