2014-07-27 73 views
-1

代码:各执HTML字符串图像标签

<div id="start">  
    <p>"hi split html string"<p><br>"now" 
    <img class="image1" src="some src" master_src="some src" master_w="400" master_h="320"> 
    "second tag is coming"<br><img class="image2" src="some src" master_src="some src" master_w="400" master_h="320"><h1>end here</h1> 
</div> 

输出:

<p>"hi split html string"<p><br>"now" , "second tag is coming"<br> , <h1>end here</h1> 

我怎么能达到这个输出中?什么可能正则表达式fot此图像类为了使用拆分功能(或任何更好的方式)?请给我演示

+1

闻起来像一个XY问题......你可能想要使用DOM,而不是正则表达式。 – elclanrs

+1

请你给我一个演示 –

+0

,因为可以有任何数量的图像标签,所以请给我一些通用的解决方案 –

回答

1

为什么你多次问同一个问题?
这是你回答

$('#start').find('img').each(function(index){ 


    var split_text = $(this).html().split(/<img[^>]*>/)[index]; 
    alert(split_text) 
    }); 
1

我不完全确定我明白你的最终目标,但如果你想删除来自HTML的图像,你可以使用DOM。首先创建一个虚拟元素,并将其innerHTML到HTML字符串:

var dummy = document.createElement('div') 
dummy.innerHTML = html 

你现在明白了包含您的HTML结构为DOM元素一个div。但是,你要的是你的DIV,不是虚假之一:

var div = dummy.children[0] 

然后循环的孩子,检查它是否是一个图像,如果因此将其删除:

for (var i=0; i<div.children.length; i++) { 
    var child = div.children[i] 
    if (child.tagName == 'IMG') { 
    div.removeChild(child) 
    } 
} 

可以追加div来在DOM:

document.body.appendChild(div) 

或者你可以取回HTML作为一个字符串,并没有图片:

div.innerHTML 
//^ <p>"hi split html string"</p><br>"now""second tag is coming"<br><h1>end here</h1> 

另请注意,您的HTML无效,因此您没有关闭</p>的段落,所以如果无效,以上操作将不起作用。

+0

难道你不能使用outerHTML来跳过一个步骤吗? –

+0

@AustinMullins:也许,不确定你的意思,随意编辑。 – elclanrs