循环格式错误的HTML表格代码jQuery

时间:2017-06-02 22:26:22

标签: javascript jquery json sorting

所以我有一个由我的客户生成的html表。我没有兴趣改变他们此时生成此代码的方式,也没有。

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Chef's Selections for Tuesday, April 25, 2017</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>SPRING FLING! Please ask us about our Bell's Beer Pairing! May 22nd!</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=19>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Soups</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Beef Vegetable</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Cream of Tomato</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=19>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Lunch Selections</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Butterflied Hot Dog</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>all beef butterflied hot dog, grilled, American cheese, mustard, bacon, pickle spear, French </FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=12>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>fries $6.50</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Pulled BBQ Pork Sliders</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Two tender smoked pulled pork sliders, barbeque sauce, Cheddar cheese, house made coleslaw, </FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=12>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>French fries $8</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Grilled Chicken Avocado Club Sandwich</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Boneless chicken breast char-grilled, avocado, Swiss cheese, bacon, lettuce, tomato, mayonnaise, </FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=12>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>house made macaroni salad $10.50</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=19>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Desserts</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Chocolate Oreo Cream Cake | Kentucky Bourbon Pecan Pie</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Double Chocolate Peppermint Brownie w/ Mint Chocolate Chip Ice Cream &amp; Hot Fudge+</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Brownie Bottom Sundae | Hot Fudge Cream Puff</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Cr&egrave;me Brulee+ | Vanilla Cheesecake</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Key Lime Pie | Coconut Macaroon w/ Sorbet++</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>+ Gluten Free ++ Gluten and Dairy Free</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>*</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=14>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>* These items are cooked to order and the consumption of raw or undercooked meats, fish or shellfish </FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=12>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>may increase your risk of food borne illness.</FONT>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=19>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Drink Specials</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>House Made SANGRIA $6 Glass |  $16 Carafe</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=19>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Rotating Wine</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>The Prisoner Red Blend, Napa Valley, CA '15 | $66 Btl</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Balletto Pinor Noir, Sonoma, '13 | 8 oz. $15 | Btl $46</FONT></B>
            </TD>
        </TR>
    </TABLE>
    <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR HEIGHT=16>
            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
                <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Red Diamond Malbec, Mendoza-Argentina, '12 | 8 oz. $9 | Btl $28</FONT></B>
            </TD>
        </TR>
    </TABLE>

我有这个项目的另一部分,我有一个表单,我有通过JSON存储的值。话虽如此,我想要一种方法能够循环遍历表并将项目存储到数组中,然后将数组合并到一个JSON文件中,以便我可以使用它并在此项目的其他地方进行比较。这是我获取此HTML表文件然后部分解析它的代码,但我仍然试图找出循环。这是代码:

$.get('/specials/lunch_klm.html', function(data) {
  var rows = jQuery($.parseHTML(data)).find("tr");
  var results = [];
  var category = [];
  var apps = [];
  var soups = [];
  var entrees = [];
  var desserts = [];
  rows.each(function(i) {
    thiz = jQuery(this);
    var markup = thiz.html();
    var text = $.trim(thiz.text());
    if( text == 'Soups') {
      results.push(text);
    }
  })
  console.log(soups);
}, 'html');

我想循环,直到我点击文本值Soups,然后将接下来的几行值放入汤数组,直到我进入“午餐选择”,然后只存储主菜的标题,而不是描述。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

table包含rows[],其中包含cells[]。您无法直接从cells[]获取table

如果没有嵌套表格,您可以使用table.getElementsByTagName('td')作为快捷方式。

否则,你应该循环遍历每个rows[],然后在那个循环中你可以循环遍历cells[]

var tables = document.getElementsByTagName('table'),
  i;
for (i = 0; i < tables.length; i++) {
  var table = tables[i],
    rows = table.rows,
    rowcount = rows.length,
    r,
    cells, cellcount, c, cell;
  for (r = 0; r < rowcount; r++) {
    cells = rows[r].cells;
    cellcount = cells.length;
    for (c = 0; c < cellcount; c++) {
      cell = cells[c];
      console.log(cell.textContent);
    }
  }
}
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Chef's Selections for Tuesday, April 25, 2017</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>SPRING FLING! Please ask us about our Bell's Beer Pairing! May 22nd!</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=19>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Soups</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Beef Vegetable</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Cream of Tomato</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=19>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Lunch Selections</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Butterflied Hot Dog</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>all beef butterflied hot dog, grilled, American cheese, mustard, bacon, pickle spear, French </FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=12>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>fries $6.50</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Pulled BBQ Pork Sliders</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Two tender smoked pulled pork sliders, barbeque sauce, Cheddar cheese, house made coleslaw, </FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=12>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>French fries $8</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Grilled Chicken Avocado Club Sandwich</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Boneless chicken breast char-grilled, avocado, Swiss cheese, bacon, lettuce, tomato, mayonnaise, </FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=12>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>house made macaroni salad $10.50</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=19>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Desserts</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Chocolate Oreo Cream Cake | Kentucky Bourbon Pecan Pie</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Double Chocolate Peppermint Brownie w/ Mint Chocolate Chip Ice Cream &amp; Hot Fudge+</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Brownie Bottom Sundae | Hot Fudge Cream Puff</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Cr&egrave;me Brulee+ | Vanilla Cheesecake</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Key Lime Pie | Coconut Macaroon w/ Sorbet++</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>+ Gluten Free ++ Gluten and Dairy Free</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>*</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=14>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>* These items are cooked to order and the consumption of raw or undercooked meats, fish or shellfish </FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=12>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>may increase your risk of food borne illness.</FONT>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=19>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Drink Specials</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>House Made SANGRIA $6 Glass |  $16 Carafe</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=19>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Rotating Wine</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>The Prisoner Red Blend, Napa Valley, CA '15 | $66 Btl</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Balletto Pinor Noir, Sonoma, '13 | 8 oz. $15 | Btl $46</FONT></B>
    </TD>
  </TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
  <TR HEIGHT=16>
    <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
      <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Red Diamond Malbec, Mendoza-Argentina, '12 | 8 oz. $9 | Btl $28</FONT></B>
    </TD>
  </TR>
</TABLE>

答案 1 :(得分:0)

你可能需要一个这样的逻辑:

var str = "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR HEIGHT=16>            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF><B><FONT style=FONT-SIZE:10pt FACE=\"Arial\" COLOR=#000000>Chef's Selections for Tuesday, April 25, 2017</FONT></B></TD> </TR></TABLE><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR HEIGHT=16>            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF><B><FONT style=FONT-SIZE:10pt FACE=\"Arial\" COLOR=#000000>SPRING FLING! Please ask us about our Bell's Beer Pairing! May 22nd!</FONT></B></TD> </TR></TABLE><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR HEIGHT=16>            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF><B><FONT style=FONT-SIZE:10pt FACE=\"Arial\" COLOR=#000000>Soups</FONT></B></TD> </TR></TABLE><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR HEIGHT=16>            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF><B><FONT style=FONT-SIZE:10pt FACE=\"Arial\" COLOR=#000000>Beef Vegetable</FONT></B></TD> </TR></TABLE><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR HEIGHT=16>            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF><B><FONT style=FONT-SIZE:10pt FACE=\"Arial\" COLOR=#000000>Cream of Tomato</FONT></B></TD> </TR></TABLE><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR HEIGHT=16>            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF><B><FONT style=FONT-SIZE:10pt FACE=\"Arial\" COLOR=#000000>Lunch Selections</FONT></B></TD> </TR></TABLE><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR HEIGHT=16>            <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF><B><FONT style=FONT-SIZE:10pt FACE=\"Arial\" COLOR=#000000>Butterflied Hot Dog</FONT></B></TD> </TR></TABLE>",
  html = $.parseHTML( str ),
  results = [],
  soups = [],
  entrees = [];

var currentArr = results;

$.each( html, function( i, el ) {
  var t = $(el).find("font").text();

  if ("Soups" == t) {
    results.push("<li>" + t + "</li>");
    currentArr = soups;
  }
  else if ("Lunch Selections" == t) {
    results.push("<li>" + t + "</li>");
    currentArr = entrees;
  }
  // you may need another if condition here to switch currentArr back to results
  else {
    currentArr.push("<li>" + t + "</li>");
  }

});

请参阅this,了解其运作方式。希望能有所帮助。

答案 2 :(得分:0)

这会让你开始。但是,如果没有将某些类添加到行中,则很难将项目与项目描述分开。我开始使用ignoreText数组来过滤这些描述,这些数组现在可用于一些描述

如果在后端添加类是可行的,那么将大大简化问题

// predefine the categories in array
// if needed could generate these by inspecting `font-size`
var cats = ['Soups', 'Lunch Selections', 'Desserts', 'Drink Specials','Rotating Wine'],
  ignoreText = ['*', 'may increase'],  
  currCat = null,
  // create object with cats as keys and empty arrays to push data to
  items = cats.reduce(function(a, c) {
    a[c] = [];
    return a;
  }, {});

// would be what you receive in your ajax, used helper function for demo
var ajaxData = get_data()

$(ajaxData).filter('table').each(function() {
  var txt = $(this).text().trim(),
    isCatHeading = cats.indexOf(txt) > -1;

  if (isCatHeading) {
    currCat = txt
  }

  if (currCat && !isCatHeading) {
    // see if start of txt is in the "ignore" array
    var isIgnoreText = ignoreText.filter(function(reg) {
      return txt.indexOf(reg) === 0;
    }).length;

    if (!isIgnoreText) {
      items[currCat].push(txt)
    }
  }
});
// display data in demo
$('pre').text(JSON.stringify(items, null, 4));

//helper function for demo
function get_data(){
  return `<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Chef's Selections for Tuesday, April 25, 2017</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>SPRING FLING! Please ask us about our Bell's Beer Pairing! May 22nd!</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=19>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Soups</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Beef Vegetable</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Cream of Tomato</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=19>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Lunch Selections</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Butterflied Hot Dog</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>all beef butterflied hot dog, grilled, American cheese, mustard, bacon, pickle spear, French </FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=12>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>fries $6.50</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Pulled BBQ Pork Sliders</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Two tender smoked pulled pork sliders, barbeque sauce, Cheddar cheese, house made coleslaw, </FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=12>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>French fries $8</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Grilled Chicken Avocado Club Sandwich</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Boneless chicken breast char-grilled, avocado, Swiss cheese, bacon, lettuce, tomato, mayonnaise, </FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=12>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>house made macaroni salad $10.50</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=19>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Desserts</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Chocolate Oreo Cream Cake | Kentucky Bourbon Pecan Pie</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Double Chocolate Peppermint Brownie w/ Mint Chocolate Chip Ice Cream &amp; Hot Fudge+</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Brownie Bottom Sundae | Hot Fudge Cream Puff</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Cr&egrave;me Brulee+ | Vanilla Cheesecake</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>Key Lime Pie | Coconut Macaroon w/ Sorbet++</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>+ Gluten Free ++ Gluten and Dairy Free</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>*</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=14>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>* These items are cooked to order and the consumption of raw or undercooked meats, fish or shellfish </FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=12>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <FONT style=FONT-SIZE:8pt FACE="Arial" COLOR=#000000>may increase your risk of food borne illness.</FONT>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=19>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Drink Specials</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>House Made SANGRIA $6 Glass |  $16 Carafe</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=19>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:12pt FACE="Arial" COLOR=#000000>Rotating Wine</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>The Prisoner Red Blend, Napa Valley, CA '15 | $66 Btl</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Balletto Pinor Noir, Sonoma, '13 | 8 oz. $15 | Btl $46</FONT></B>
      </TD>
    </TR>
  </TABLE>
  <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
    <TR HEIGHT=16>
      <TD WIDTH=456 ALIGN=CENTER BGCOLOR=#FFFFFF>
        <B><FONT style=FONT-SIZE:10pt FACE="Arial" COLOR=#000000>Red Diamond Malbec, Mendoza-Argentina, '12 | 8 oz. $9 | Btl $28</FONT></B>
      </TD>
    </TR>
  </TABLE>`

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h4>
Data
</h4>
<pre>Test</pre>

相关问题