2014-07-27 120 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