如何将html标记块存储到数组中?

时间:2013-07-19 20:06:59

标签: javascript jquery

我正在尝试提取用户input html数据并将其存储在objectarray

html的来源可能如下

begin <em>texts</em>
    description texts here

<table>
   <tr><td>cell 1<td><td>cell2</td></tr>
   <tr><td>cell 3<td><td>cel4</td></tr>
</table>

<em>second<em> part texts

<table>
   <tr><td>cell 5<td><td>cell6</td></tr>
   <tr><td>cell 7<td><td>cel8</td></tr>
</table>

我需要能够存储以下内容。

表格外的所有文本和表格中的单元格数据。 他们需要整洁。

我试过了

var data = [];
sourceHtml.contents().each(function(){
    if($(this).is('table')){
          var table = $(this)
          var rows = 'rows:' + $('tr', table).length;
          var column ='column:' + $('td', table).length / $('tr', table).length;
          //i need to get the table columns and rows counts
          data.push(rows)
          data.push(column)

          table.find('td').each(function(){
              data.push($(this).text().trim());
          })
        }else{
          data.push($(this).text().trim());
        }
 })

上述内容只会向我提供sourceHtml中的所有文字,但会丢失markup的所有文字。在获取我的数据文本时,是否仍然保留html标记?非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

而不是$(this).text().trim()使用$(this).html()

希望这有帮助

答案 1 :(得分:1)

使用.html()代替.text()来获取元素的HTML标记内容,而不是文本节点内容。

http://api.jquery.com/html/