2015-03-30 2 views
1

Я пытаюсь получить значение определенного класса родительского элемента. Мой код прямо сейчас может восстановить $(this), который указывает на ячейку td.FixListOF, и я хотел бы восстановить значение lot_15_216297_V0_B3-102-2 родительского класса или лучше сказать, что хочу восстановить значение строки класса, начинающееся с lot_ класса. Мне не нужно указывать на родительский элемент. Мне нужна строка со значением «lot_15_216297_V0_B3-102-2»jquery получить значение определенного класса родительского элемента

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

<tr class="lot_15_216297_V0_B3-102-2 WS2 odd" _DT_RowIndex="0"> 
    <td class=FixListOF> 

Спасибо,

+0

Предполагая, что класс всегда на 'tr', вы можете использовать' $ (это) .closest ('Tr') ' –

+0

или это один' $ (это) .closest ('tr [class^= "lot _"]') ' – Jai

+0

@Jai пока это будет работать, он будет полагаться на класс' lot_' * всегда *, который будет первым в списке классов, что может и не быть , –

ответ

1

Лучше всего, чтобы проверить, где элемент содержит класс, начиная с lot_ используя attribute contains selector*=, а затем использовать регулярные выражения для извлечения конкретного класса.

например.

var classes = $(this).closest('[class*="lot_"]').attr('class'); 
alert(classes.match(/lot_\S*/)); 

JSFiddle:http://jsfiddle.net/TrueBlueAussie/34uh8ym7/2/

+0

спасибо, я искал струнные манипуляторы, и я не встречал матч! –

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