Javascript 基于html标记拆分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
<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);