В случае, когда needle_element > array[mid]
, вы в настоящий момент передаете array[mid:]
на рекурсивный вызов. Но вы знаете, что array[mid]
слишком мал, поэтому вы можете передать array[mid+1:]
вместо этого (и соответственно отрегулировать возвращаемый индекс).
Если игла больше всех элементов массива, этот путь в конечном итоге даст вам пустой массив, и ошибка будет повышена, как ожидалось.
Примечание. Создание подматрицы каждый раз приведет к плохой производительности для больших массивов. Лучше пройти в границах массива.
Укажите необязательный селектор, чтобы выбрать то, что вам нужно:
jQuery(this).parent('li').addClass('yourClass');
Или:
jQuery(this).parents('li').addClass('yourClass');