Чтобы ответить на ваш существенный вопрос, вам нужно сравнить значения text()
для каждого элемента $('.ticketgroup')
массива.Группировать их было бы немного извращенно, потому что вам нужно отслеживать соседние значения и сохранять подмножество.
Вот псевдокод для одного подхода:
let matches = {
// key (list item string): value (array of matching list item indexes)
};
$('li.product_item').each(function() {
let myString = $(this).find('.ticketgroup').text();
// check whether myString exists as a key in matches
// if so, add its index to an array on that key
// if not, add it as a new key with an empty array as its value
});
// now examine all the arrays and look for sequential indexes
// use those to break up the list or add styling classes
Как видите, это нелегкая вещь.Если вы хотите сделать соответствующие элементы визуально похожими, и вы знаете, какие строки обычно ожидаются, просто сделайте несколько стилей:
$('.ticketgroup').each(function() {
if ($(this).text() === 'Dayticket weekend') {
$(this).closest('li').addClass('dayticket-weekend');
}
});
Затем вы можете по-разному оформить эти элементы списка.