Как получить HTML без удаления дочернего элемента (jQuery)

Есть проблемы с изменением js-объекта. Имеет структуру html. Пример:

myObj.html ='<span class = "first">la-la-la</span>
            <span class = "second">la-la-la</span>';

И структура из-за действий пользователя меняется (добавление, удаление элементов):

$(myObj.html).find('.second').remove()

Теоретически это должно помочь. Но я работаю только со строкой (это не настоящий элемент DOM). myObj.html не сохраняет изменения, а .remove () возвращает удаленный элемент. И я хочу, чтобы myObj.html тоже изменился:

myObj.html ='<span class = "first">la-la-la</span>;

Как быть в такой ситуации? (RegExp - не лучшая идея)

не уверен в том, что вы хотите, но предполагая, что у вас просто есть строка с этой структурой, и в ней есть разрыв строки, как кажется, вы можете попробовать что-то вроде: myObj.html =myObj.html.split('\n')[0];

DarkAjax 24.05.2018 01:00

Нет-нет-нет ... Наверное, все это из-за моего плохого инглиша :) Крис решил мою проблему.

User8371 24.05.2018 01:45
Поведение ключевого слова "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) для оценки ваших знаний,...
6
2
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно, вы можете попробовать следующее, используя createElement() и удалив послесловия элемента:

let myObj ='<span class = "first">la-la-la</span><span class = "second">la-la-la</span>';
let myObjHTMLDiv = document.createElement('div');
myObjHTMLDiv.innerHTML = myObj;
$(myObjHTMLDiv).find('.second').remove();
myObj = myObjHTMLDiv.innerHTML;
delete myObjHTMLDiv;
console.info(myObj);
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Ответ принят как подходящий

Если вы вызываете .html(myObj.html) для временного элемента, вы можете делать все, что хотите, а затем прочитать его снова:

var myObj = {};

myObj.html ='<span class = "first">la-la-la</span><span class = "second">la-la-la</span>';

$tmp = $("<div>").html(myObj.html);
$tmp.find(".second").remove();
myObj.html = $tmp.html(); 

console.info(myObj);
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Ооооо! Это реально работает! Не очень красиво, но работает! Крис, ты гений! Спасибо!

User8371 24.05.2018 01:42

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