Как добавить элемент html вокруг другого элемента html с помощью jquery

Другой день, другая проблема. У меня что-то вроде этого:

<p class = "checkbox">
   <input name = "cgv" id = "cgv" value = "1" type = "checkbox">
   <label for = "cgv">Some text.</label>
</p>

Используя jquery, я хочу изменить этот код на:

<p class = "checkbox">
   <div class = "checker" id = "uniform-cgv">
      <span>
         <input name = "cgv" id = "cgv" value = "1" type = "checkbox">
      </span>
   </div>
   <label for = "cgv">Some text.</label>
</p>

Итак, элемент input #cgv находится внутри элементов span и div. Я хочу сделать это с помощью этого кода, но безрезультатно.

$('#submitGuestAccount').click(function () {
        //True if parent is <p> element
        if ($('#cgv').parent().hasClass('checkbox')) {
            $('<span>').insertBefor('#cgv');
            $('</span>').insertAfter('#cgv');

        }
    });

Кто-нибудь может помочь мне с моей проблемой?

С уважением

Документация может помочь вам с вашей проблемой.
T.J. Crowder 18.03.2018 10:34

Это оно. Спасибо

Adam Kowalski 18.03.2018 10:42

Это действительно плохая структура - семантически элемент «<p>» следует использовать для текста, то есть для абзацев, а не в качестве оболочки для нетекстовых элементов, особенно для входных данных. Что вам нужно сделать, так это изменить структуру html на div, который обтекает ввод. Да - это можно сделать (согласно ответу листа), но вы должны спросить себя - какова основная цель этой структуры html, и это НЕ общий элемент без семантической цели (этот элемент - "<div>" которые можно использовать для размещения других элементов.

gavgrif 18.03.2018 10:51

Это нативный функционально в Prestashop 1.6.

Adam Kowalski 18.03.2018 16:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

API jQuery хорошо документирован:  : http://api.jquery.com/wrap/.

$("#cgv").wrap(
  "<div class=\"checker\" id=\"uniform-cgv\"><span></span></div>"
);
div{border:10px solid red}
span{border:10px solid blue}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class = "checkbox">
   <input name = "cgv" id = "cgv" value = "1" type = "checkbox">
   <label for = "cgv">Some text.</label>
</p>

Я искал в документации, но не знаю, как найти эту функцию. Спасибо за помощь.

Adam Kowalski 18.03.2018 10:43

Другие вопросы по теме