2013-11-09 20 views
0

由於無法修改源,我陷入了一種情況。我可以插入一些自己的HTML,所以我可以創建一個起點。我也有一個有點確定的元素來定義終點。將DOM從某個地方移除到某個地方的HTML輸出

我想知道是否有可能刪除PHP提供的strpos方式輸出的HTML,但現在使用jQuery。我在論壇中搜索過它,但沒有找到相關問題。

下面一個簡單的例子:

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

我想使用jQuery它編輯到:

.. 
    .. more output 
</div> 

任何建議都非常讚賞。謝謝你的時間。

回答

0

想通了。我使用了幾個$(selector).each()來處理DOM並刪除所有不需要的輸出。

0

作爲此問題可以簡化爲:

  • 你有一個容器
  • 你在該容器中的元件,其中:
    • 一切之前該元件應被刪除
    • 含有元素該元素應該(部分)被刪除
    • 拆分元素本身應該被刪除

這可以通過初始容器的子容器來簡化問題,直到從DOM中刪除所有要移除的元素爲止。 .contents()返回一個包含所有節點(包括文本節點)的對象。 .each()循環遍歷這樣的對象中的所有元素。在那裏返回false會提前停止這個循環。 $.contains(...)在第二個參數中的元素位於第一個參數中的元素中時爲true。

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); 
相關問題