Czysty kod > szybki kod
To dość ważna zasada. Jeśli masz kod który działa szybko ale jest obszerny i niezrozumiały wcześniej czy później skończy się on katastrofą ;)
Kod z each powinien działać wolniej ponieważ jeden i drugi kod pobiera wszystkie elementy. Kod z each musi wywołać więcej funkcji a i tak przerywasz iterowanie po już znalezionych wszystkich elementach.
Masz jeszcze kilka możliwości przyśpieszenia :D
Jeśli dziecko jest bezpośrednim rodzicem możesz użyć.
$("#container > a[data-index='5']")
lub
$("#container").children("a")
Jeśli często wykonujesz tą akcje możesz to troszkę rozbić. Na początku programu zrobić zmienną.
var container = $("#container");
a następnie w kodzie wywoływać :
container.find("a[data-index='5']")
Ale najlepszym z najlepszych rozwiązań jest zastosowanie natywnej funkcji przeglądowej querySelector która wyszukuje tylko jeden element. Można ją połączyć z jQuery jeśli nie potrafisz czystego JavaScript
$(document.querySelector("#container a[data-index='5']"))