JQuery выберите элемент внутри td

Я хотел бы выбрать элемент внутри td одной из моих таблиц, но я действительно не понимаю синтаксис. Это то, что я пробовал:

$("table > td:#box")

Это образец моей структуры таблицы:

<div id="main">
<div id="today">
    <table id="list" width="100%" cellpadding="4" cellspacing="0" border="0" style="font-size: 10px; border-collapse:collapse;">
    <tr id="109008">
    <td class="tdstd">
    <a class="box" href="link"></a>
    </td>

Или с помощью инспектора Chrome DOM:

alt text

Ответ 1

Ну, "#box" означает объект DOM с полем "id", так как он является уникальным идентификатором. Вы можете выбрать это напрямую. Но ваш код предполагает, что у вас есть несколько элементов с идентификатором "box", который вы должны изменить. Вы должны назначить класс вашему элементу внутри TD, или если он уникален, будучи единственным DIV или SPAN в этом поле, вы можете получить к нему доступ следующим образом:

$("table td .box")

Обратите внимание, что селектор " > " означает, что TD должен быть прямым дочерним элементом TABLE, и я предполагаю, что вы имеете по крайней мере уровень TR между ними, так что это тоже не сработает. Мой пример выше соответствует каждому элементу с полем класса внутри любого TD, который является дочерним для любого TABLE.

Очевидно, я бы тоже установил класс в таблице и использовал бы что-то вроде этого:

$("table.boxes td .box")

Просто, чтобы вы случайно не выбрали вещи вне области действия, в которой вы хотите работать.


Теперь вы добавили HTML, поэтому я редактирую свой ответ:

$("table#list a.box")

Ответ 2

Наиболее эффективным селектором будет:

$('#list').find('a.box');

или

$('a.box', $('#list')[0]);

Выбрав таблицу id, сначала вы установите область видимости только в таблицу, а затем вы можете искать элемент, который вам нужен, в этой таблице.

Второй селектор - это то же самое, вы выбираете что-то, и вы предоставляете область как второй параметр.

Проще всего читать первый.

Ответ 3

 $("table tr td .box")

Должен сделать трюк.

Ответ 4

Этот селектор...

table td a.box

сообщает jQuery, чтобы найти тег a с атрибутом class, который содержит "поле". И этот тег a должен находиться внутри td, который находится внутри table.

Ответ 5

Я не уверен, но я думаю, вам нужно $("td#box")...