2013-07-17 46 views
-1

我在嘗試識別中的文字。很熱從一堆html標記中提取數據?

ckData包含來自用戶輸入的Ckeditor的HTML標記和表格。

例如

text here texts here texts here 
second line texts...etc. 
<br> 
<table> 
    ... 
</table> 

more texts here... 

<table> 
.... 
</table> 

我希望能夠從ckData得到所有文本。

我可以得到表文本用以下代碼

var contents = {}; 
    var temp = document.createElement('div'); 
    var instance = this; 
    temp.innerHTML = ckData; 

    var tables = temp.getElementsByTagName('table') 
    //use tables as array... 
    for(var i = 0; i<tables.length; i++){ 
     var table = tables[i]; 
     contents.rowsCount = $('tr', table).length; 
     contents.columnsCount = $('td', table).length/question.rowsCount; 
     contents.texts=''; 

     $(table).find('td').each(function(){ 
       contents.push($(this).text().trim()); 
       contents.texts += $(this).text() 
     }) 
    } 

我希望能夠提取表而外面的文本保持ckData的原始順序。

所以最終contents可變我希望得到的是這樣的:

first part of texts 

table cell data //got this 

second part of texts 

table cell data //got this 

我得到了table cell數據,但我不知道怎麼去table結構的texts之外。

我希望我解釋得很好。十分感謝你的幫助!

+0

爲什麼不使用'temp.textContent'(注意你將失去格式)? –

+0

@PaulS。謝謝,但我需要維護表格以外的文本的HTML標記。 – FlyingCat

+0

[如何獲取不屬於子項的容器內的文本]的可能重複(http://stackoverflow.com/questions/12819953/how-to-get-text-inside-of-container-that-is-非兒童部分)...這是諷刺的,[可以如何選擇jQuery文本節點?]的可能副本(http://stackoverflow.com/questions/298750/how-do-i-select -text-nodes-with-jquery)... duplicateception – Ohgodwhy

回答

0

您可以在jQuery中簡單使用.text()函數。它只返回文本並修剪所有標記代碼。