2013-11-09 7 views
0

Из-за невозможности изменить источник, я застрял в ситуации. Я могу вставить некоторый собственный HTML, поэтому я могу создать отправную точку. У меня также есть несколько определенный элемент для определения конечной точки.Удалите HTML-вывод из DOM из определенного места в определенное место

Мне интересно, можно ли удалить выводимый HTML в strpos способом PHP, но теперь с помощью jQuery. Я искал его на форумах, но я не нашел соответствующих вопросов.

Ниже упрощенный пример:

<my startpoint> 
<div> 
    .. 
    .. non editable output 
    .. 
    <identifier> 
    .. 
    .. more output 
</div> 

Я хочу использовать JQuery, чтобы изменить его на:

.. 
    .. more output 
</div> 

Любые предложения очень ценятся. Спасибо за ваше время.

ответ

0

Выяснил это. Я использовал несколько $(selector).each() для обработки DOM и удаления всего нежелательного вывода.

0

Эта проблема может быть упрощена:

  • У вас есть контейнер
  • У вас есть элемент в этом контейнере, где:
    • все до того, что элемент должен быть удален
    • элемент, содержащий этот элемент должен быть (частично) удален
    • сам разделительный элемент должен быть удален

Это можно сделать рекурсивным, если вы упростите проблему с подконтейнерами исходного контейнера, пока не удалите все элементы из 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^