Javascript 基于html标记拆分html内容

Javascript 基于html标记拆分html内容,javascript,jquery,regex,split,Javascript,Jquery,Regex,Split,HTML: <div id ="split"><p>hi one two three</p><img class ="some class" src="some src" master_src="src" master_w="318" master_h=22"><img class="some" src="src"><h1> 4 5 6</h1></div> 期望输出: <p>hi on

HTML:

<div id ="split"><p>hi one two three</p><img class ="some class" src="some src" master_src="src" master_w="318" master_h=22"><img class="some" src="src"><h1> 4 5 6</h1></div>
期望输出:

<p>hi one two three</p>
""           
<h1>4 5 6</h1>
如何获得此输出?如果一个div中可以有n个图像,我需要一个通用的表单

$("#split").find('img').each(function(index){
       alert($(this).splitsuchthat()) 
// for first time it should be <p>hi one two three</p>
// secon time ""
// third time <h1> 4 5 6</h1>  

});

我不确定是否理解您的问题,但以下可能是您需要的:

$(function(){
    $("#split>*").each(function(index){
                     alert($(this).text()) ;
                     });

});
jsidle:

您可以使用prevTill或nextUntil来获取两个图像之间的元素。然后,您只需处理剩余端:


这是什么?将与段落标记匹配。@AvinashRaj您永远不应该使用reg-exp来匹配htmlObligatory parse HTML,不是吗?我仍然不知道您要实现什么。img和它有什么关系?谢谢,我可以使用$temp.find'img'吗,因为temp存储的是div id$temp.childrenimg可能会稍微好一点,因为嵌套元素中的图像不会正常工作。如果我使用childern,每个循环都不会执行,在我的代码中它不会进入for循环
// a helper function to print the html of elements contained in a jquery object
function toHtmlString($els){
    var clone = $els.clone();

    return $('<div>').append(clone).html();
}

// get all elements before an image
$("#split > img").each(function(index){
    var $prevs = $(this).prevUntil("img");
    var htmlString = toHtmlString($prevs);
    alert(htmlString);
});

// get everything after the last image
var $after = $("#split > img:last").nextAll();
var htmlString = toHtmlString($after);
alert(htmlString);