Из-за невозможности изменить источник я застрял в ситуации. Я могу вставить некоторый собственный HTML, поэтому я могу создать отправную точку. У меня также есть несколько определенный элемент для определения конечной точки.
Мне интересно, можно ли удалить вывод HTML в strpos, как это предлагает PHP, но теперь с помощью jQuery. Я искал его на форумах, но я не нашел соответствующих вопросов.
Ниже упрощенный пример:
<my startpoint>
<div>
..
.. non editable output
..
<identifier>
..
.. more output
</div>
Я хочу использовать jQuery для его редактирования:
..
.. more output
</div>
Любые предложения приветствуются. Спасибо за ваше время.
Эта проблема может быть упрощена:
Это можно сделать рекурсивным, если вы упростите проблему с подконтейнерами исходного контейнера, пока не удалите все элементы из DOM, которые вы хотите удалить. .contents()
возвращает объект, содержащий все Узлы (включая TextNodes). .each()
циклически проходит через все элементы в таком объекте. Возвращение false
в этом случае остановит этот цикл раньше. $.contains(...)
истинно, когда элемент во втором аргументе находится в элементе в первом аргументе.
var start = document.getElementById('start');
var splitpoint = document.getElementById('splitpoint');
function removeUntil( parent, split ) {
$(parent).contents().each( function( index, elem ) {
if( elem == split ) {
parent.removeChild( elem );
return false;
} else if( $.contains( elem, split ) ) {
removeUntil( elem, split );
return false;
} else {
parent.removeChild( elem );
}
} );
}
removeUntil( start, splitpoint );
Догадаться. Я использовал несколько $(selector).each()
для обработки DOM и удаления всего нежелательного вывода.