2009-12-30 1 views
0

Я пытаюсь написать функцию многократного использования для извлечения всех данных в таблице, которая передана ему, и сохранить ее в массиве.[jQuery]: добавить селектор

Я не уверен, как передать ссылку на таблицу.

я мог бы сделать что-то вроде ...

passTableRef($('#tableId th'),$('#tableId td')); 

, но я хотел бы передать только ссылку таблицы в случае, если я хотел бы остановиться на функции.

Есть ли способ пройти $('#tableId') и добавить ссылку на $('#tableId th') и $('#tableId td') в функции?

EDIT: для осветления

мне интересно, если вы можете взять ссылку - $(#tableId)

передать его в функцию - reusableFunction($('#tableId'))

затем сделать что-то вроде этого ..

function reusableFunction(table) 
{ 
    //change the selector $("#tableId") to $("#tableId th") 
} 
+0

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

+0

Ваш вопрос все еще не имеет смысла. Что означает «append $ (« # tableId ») в $ (« # tableId th »)? Вы не можете добавить таблицу в одну из своих собственных ячеек. – noah

+0

Я хочу ИЗМЕНИТЬ селектор от $ ('tableId') до $ ('# tableid th') –

ответ

2

Пройдите только по столу и просто продолжайте движение вниз до whatev вы хотите с find.

someFunc($('#tableId')); 

тогда ...

function someFunc(table) { 
    var tds = table.find('td'); 
} 
+0

FYI, вам не нужен весь объект jQuery снова ; $ ('# foo'). add ('. bar') отлично работает. –

+0

Правда, отредактировал мой ответ, чтобы не добавлять ничего, хотя :) – rfunduk

0

Если вы хотите ссылку на конкретную таблицу, идентификатор должен быть все, что вам нужно: $('#tableId') относится именно к столу. Если вам нужно будет обратиться к более конкретным частям позже, просто возьмите этот объект jQuery внутри своей функции и посмотрите на th или td части с add("td") или add("th").

0

Если у вас есть объект jQuery, вы можете вызвать find() с помощью селектора, чтобы найти элементы-потомки. Таким образом, вы могли бы иметь функцию что-то вроде этого:

function findTableElements(table) { 
    var th = $(table).find('th'); 
    var td = $(table).find('td'); 
} 

и использовать его так:

findTableElements($('#tableId')); 

Более подробную информацию о функции поиска можно найти в документации http://docs.jquery.com/Traversing/find#expr