Как перебрать несколько таблиц с помощью jQuery в HTML-файл, загруженный с помощью AJAX - PullRequest
0 голосов
/ 23 июля 2010

Я пытаюсь проанализировать данные ответа в формате html.Данные содержат несколько таблиц (не вложенных таблиц).Я загружаю html с помощью ajax и пытаюсь перебрать данные с помощью jquery.

Проблема заключается в отсутствии результата, когда я начинаю с 'table' для зацикливания (у меня несколько таблиц и у меня нет идентификатора для таблицы.)Когда я использую 'tr', он хорошо работает в Firefox и Chrome, но не в IE.

Я хотел бы знать, как я могу проходить по этим таблицам.Вот код, который я пытался.

<html>
<head>
<title>Html table tParser</title>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script language="JavaScript">
 $(document).ready(function(){   
        $.ajax({
                url: "htmltables.html",
                cache: false,
                success: function(html)  
                { 
                 //alert( (html.length));
                 //alert( $(html).find('table').size() );  
                $(html).find('table').each(function(index) 
                { 
                    document.write('<br />'+'<br />'+ 'Table:' + index + '<br />')
                    $(this).find('tr').each(function(index) {
                        document.write('<br />'+'<br />'+ 'Row :' + index + '<br />');                     
                        $(this).find('td').each(function(index) {                                                       
                            document.write($(this).text() + '<br />');
                        });  //td
                    }); //tr    
                });  //table
         } //success
             }); // $.ajax(
  });//$(document).ready(function    

     </script>
   </head>
   <body>
   </body>
</html>

/*------------------------------ */
/* Here is the sample html file I was trying to parse*/

<html>
<head>
<title></title>
</head>

<body>
<table width="200" border="1">
  <tr>
    <td>1</td>
    <td>1</td>
    <td>1</td>
  </tr>
  <tr>
    <td>2</td>
    <td>2</td>
    <td>2</td>
  </tr>
  <tr>
    <td>3</td>
    <td>3</td>
    <td>3</td>
  </tr>
</table>
<table width="200" border="1">
  <tr>
    <td>4</td>
    <td>4</td>
    <td>5</td>
  </tr>
  <tr>
    <td>5</td>
    <td>4</td>
    <td>5</td>
  </tr>
  <tr>
    <td>6</td>
    <td>4</td>
    <td>5</td>
  </tr>
</table>

</body>
</html>

Ответы [ 2 ]

1 голос
/ 23 июля 2010

Вы можете добавить таблицу к скрытому элементу и затем проанализировать его:

var wrapper = $('<div>').hide().appendTo(document.body);
// [...]
success: function(html) {
    wrapper.append(html);
    var table = wrapper.find('table');
    alert(table.length); // should be at least 1

    // parse the HTML here

    wrapper.show(); // will reveal the html
}
0 голосов
/ 23 июля 2010

может быть попробовать

$(html).wrap('<span>').parent().find('table')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...