Проблемы с извлечением деталей из визуализированных HTML-таблиц с помощью jQuery - PullRequest
0 голосов
/ 12 ноября 2010

Мне нужно взять определенные части из многих таблиц, сохранить их и, наконец, сгенерировать новую таблицу, используя шаблон jQuery.Но у меня возникают проблемы при сборе первого значения.

HTML

<table>
  <tr><td colspan="7"><a href="http://link/index.php?view=page&id=2961" target="_blank" title="title">atext1 atext2</a> - stuff 2 - <img src="img/icon_1.gif" class="icon" title="icon1" />12 - <img src="img/icon_2.gif" class="icon" title="icon2" />4 - <span title="long title"><img src="img/icon_3.gif" class="icon" /> stuff 5 </span></td></tr>
  <tr><th><span title="title1">th1</span></th><th title="title2">th2</th><th title="title3">th3</th><th title="title4">th4</th><th title="title5">th5</th><th title="title6">th6</th><th title="title7">th7</th></tr>
  <tr><td class="own" style="width:10px;">&nbsp;</td><td><a href="http://link/index.php?view=page2&id=1413" target="_blank" title="title">text</a></td><td><img src="img/icon_4.png" class="icon link" title="icon4" onclick="dothis(118965,[1324,1835,2296,2443,2960,2961,2962,2964,2976,3186,4901,4974]);" /> <a href="javascript:dothat('div1',118965);" title="div1">text</a></td><td><a href="http://link/index.php?view=page3&newid=188898" target="_blank" title="page3">text</a></td><td class="right">24 (9)</td><td class="right">827</td><td class="right">11</td></tr>
  MORE SIMILAR TRs HERE
</table>

JS

var savedData = [];
tbl = $('#table_1'); // Grab all content within div, which is a whole html table 
var data = [];
$('tr', tbl).each(function(i, tr) {
  // Begin the process to grab needed parts
  if (i == 0) { // first row is special. it is colspan'ed
    row = $('td', tr).html().split(' - ');  // Splitting seems like the only way to get smaller html parts to work with
    var a_href = $(row).find('a').attr('href'); // returns undefined
    var a_href = $(row[0]).find('a').attr('href'); // returns undefined
    var a_href = $('a', row).attr('href');  // returns undefined
    var a_href = $('a', row[0]).attr('href');  // returns undefined

    // Grab id only. I thought this would work
    data['id'] = $('a', row[0]).attr('href').match(/view=page&id=([0-9]+)/)[1];
    // Grab the other parts
  } else {
    // do stuff for other rows
  }
});
savedData.push[data];

1)Почему я становлюсь неопределенным?'row' становится массивом при разбиении внутреннего html

2) У меня также есть по крайней мере 1 т.р. только с ячейками th.Будет ли он ускорять те строки, которые исключены из .each (), как с помощью вспомогательного селектора, или просто игнорировать его (например, if ($('td', tr).length > 0) { // do stuff })?

3) Если я просто возьму весь текст () из всех td во всех tr, то использование jQuery.map () примерно в 3-4 раза быстрее, чем jQuery.each (i, v).Любая идея, почему?
Я могу использовать $('td[colspan], tr), чтобы захватить первую строку, но jQuery.each () легко понять и, таким образом, работать с

4) Когда мне нужно использовать собранные части вшаблон, могу ли я использовать savedData[0].id?

1 Ответ

0 голосов
/ 18 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...