JQuery получает HTML из определенного класса в таблице - PullRequest
2 голосов
/ 25 июня 2010

У меня есть таблица, и я хочу извлечь HTML из определенной строки без определенного класса.

Так, например, со строкой:

<tr>
<th class='a'></th>
<th class='b'></th>
<th class='c'></th>
<tr>

Я бы хотел получить такой результат, как

<th class='b'></th>
<th class='c'></th>

Я пробовал несколько вариантов

var newTr = $('#table01 tr:nth-child(2) .a').remove().html();

Но он не возвращает желаемый результат, а удаляет th из исходных строк (как я и предполагал)

Было бы лучше использовать регулярное выражение для удаления содержимого или есть селектор jQuery, который я могу использовать?

Ответы [ 3 ]

2 голосов
/ 25 июня 2010

Если вам нужен HTML-код строки, вам нужно указать jQuery на <tr> для .html(), в то время как .remove() все равно потребуется указатель на <th>.

Однако после .remove() вы не сможете просто пройти от <th> до <tr>, так как они не будут связаны (например, через .parent()). Чтобы обойти это, вы можете использовать серии .find() и .end(), чтобы указать на <th> достаточно долго для .remove:

$('#table01 tr:nth-child(2)').
    find('.a').remove().end().
    html();
  • jQuery начинается с <tr> w / :nth-child(2)
  • .find() перейдет к <th class="a">, который вы .remove()
  • .end() вернется к <tr>, чтобы взять оставшиеся .html()

Кроме того, если вы на самом деле не хотите влиять на таблицу - просто результат - добавьте .clone():

$('#table01 tr:nth-child(2)').clone().
    find('.a').remove().end().
    html();
0 голосов
/ 25 июня 2010
var ths = $('#table01 tr:nth-child(2) th').not('.a').clone().html();

Может быть, что-то подобное. Трудно ответить на iPod touch.

0 голосов
/ 25 июня 2010

Взгляните на .index () руководство

...