我想得到一个分区的内部html,我想从那个html remove particular elements
,看看下面的html
<div id='mainDiv'>
<p>dont remove me</p>
<span id='removeSpan'>Remove Me</span>
<div id='removeDiv'>
<p>don't remove me</p>
</div>
<p>dont remove me</p>
</div>
从上面的html我想得到mainDiv
的innerHTML而我想删除removeSpan
和removeDiv
我想要删除remove div
我正在做的事情的孩子到目前为止..
var fullHtml = $('mainDiv').html();
var filterHtml= fullHtml .replace('<span id='removeSpan'>Remove Me</span>','');
this working for this element bcoz i dont want childs of this element
但ican如何只删除removeDiv
[只有它的开关标签而不是孩子],最终结果应该是
<p>dont remove me</p>
<p>dont remove me</p>
<p>dont remove me</p>
感谢立即回复..
bt here i dont want to change my application screen[html]
。我只想收集内部HTML(当然,像我说的那样删除后)作为字符串变量。我可以做到这一点......抱歉有问题!
答案 0 :(得分:3)
$('#mainDiv').parent().append($('#mainDiv p')).end().remove();
或
$('#mainDiv p').unwrap().siblings('#removeSpan').remove();
这个也保存数据和事件,也可以写
$('#removeSpan').remove();
$('#mainDiv p').unwrap();
修改强>
如果您只想在变量
中使用P标签的HTMLvar html = $.map($('#mainDiv p'), function(e) { return e.outerHTML }).join('');
或只是段落
var p = $('#mainDiv').find('p');
或段落的克隆
var p = $('#mainDiv').clone(true).find('p');
答案 1 :(得分:1)
根据你所写的内容...... .unwrap()和.remove()的组合将起到作用。
<script type="text/javascript">
// <![CDATA[
(function($){
$(document).ready(function(){
$('TRIGGER').on('click', function(){
$('#removeDiv p').unwrap();
$('#removeSpan').remove();
});
});
})(jQuery);
// ]]>
</script>
当.remove()删除该特定元素时,.unwrap()将从元素中删除父元素。