2012-06-08 4 views
1

У меня есть таблица, и когда пользователь нажимает на строку, она подсвечивается желтым цветом. Я использую класс, чтобы установить цвет с помощью CSS, как:Как получить массив выделенных строк в таблице с помощью jQuery?

.highlight { 
    background-color: yellow; 
} 

Теперь, когда пользователь нажимает кнопку отправки, я хочу, чтобы все выделенные строки, а затем получить конкретное значение столбца из этой строки, а затем помещают их в массив. Я пропускаю что-то, хотя, поскольку мой селектор не помещает данные в массив в массив.

var arr = $('#tbl tr').filter(":has(.highlight)"); 

Это то, что я использовал в другой функции, чтобы получить значение из одной строки, когда пользователь нажал на нее. Ниже приведен код, но мне нужно сделать это для всех выделенных строк.

$(this).find('#selectedRowItem').text() 

Я использую jQuery 1.6.4. Кстати.

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

Любые идеи относительно того, как это сделать?

+0

Попробуйте '$ (" # tbl .highlight ")' Если вы разместите больше кода или поместите пример в [jsfiddle] (http://jsfiddle.net/), я могу показать вам полный верный способ, используя ваш код – SpYk3HH

+0

у вас есть неидентичные идентификаторы в вашей таблице? –

ответ

1
var $highlighted = $('#tbl tr.highlight'); 
2
var highlighted=$('body .highlight'); 

Это будет делать, то вы можете USEA $ .each перебрать массив

1

Попробуйте это:

var $highlighted = $("#tbl .highlight [id=selectedRowItem]"); 
var arr = $.map($highlighted, function (el, i) { 
    return $highlighted.eq(i).text(); 
}); 

Однако я настоятельно рекомендую вам изменить selectedRowItem ID для имени класса, идентификаторы должны быть уникальными.

+0

Это так. Я определяю его динамически с помощью тега struts2, как в:

+0

Правильно, но это означает, что у вас есть эта ячейка таблицы с тем же идентификатором 'id =" selectedRowItem "' для каждой строки, правильно? –

+0

Исправить. Моя ошибка, я забыл, что теги просто выплевывают простой html и ничего не делают с этим. Я могу использовать имя класса или на счетчике id в качестве значения, я сделал это раньше. –

1

Джеймс, вам не нужно помещать 'has' в ваш селектор. Таким образом, используя код, приведенный ниже, ваш селектор будет работает

$('#tbl tr').filter(".highlight") 

Посмотрите эту скрипку: http://jsfiddle.net/estevao_lucas/kDSmS/. Надеюсь, это поможет вам.

Смежные вопросы