jQuery - выбрать ячейки таблицы, не выбирая из вложенной таблицы - PullRequest
0 голосов
/ 21 июня 2010

Я написал несколько jQuery для выбора ячеек в таблице с определенным классом;в этом случае "привет".Однако в таблице есть вложенные таблицы со столбцом того же класса.Как выбрать ячейки из внешней таблицы, но не выбрать ячейки из внутренней?Смотрите ниже:

HTML:
<table class="foo"> <!-- this is the outer table
  <tbody>
    <tr>
      <td class="hello"> <!-- select this cell

        <table> <!-- this is the nested table
          <tbody>
            <tr>
              <td class="hello"> <!-- do not select this cell
              </td>
            </tr>
          </tbody>
        </table>

      </td>
    </tr>
  </tbody>
</table>

jQuery:
// this selects the nested cells as well
$('table.foo:first').find('td.hello').doSomething();

Ответы [ 2 ]

5 голосов
/ 21 июня 2010

То, что вы хотите, это избегать повторения слишком глубоко, поэтому вы можете пойти так:

$('table:first > tbody > tr > td.hello')

Что, я считаю, эквивалентно

$('table:first').children('tbody').children('tr').children('td.hello')

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

Если классы на внешней таблице остаются, вы можете просто использовать:

$('table.foo > tbody > tr > td.hello');

Здесь, возможно, стоит отметить один факт: элемент *1005* присутствует всегда , даже если вы не указали его явно. Из-за природы определения SGML / HTML / XHTML / whatyacallit для элемента <tbody> он имеет необязательный открывающий тег . Даже если источник не содержит его, элемент DOM будет создан при анализе таблицы.

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