Questions & Answers about На куртке не хватает одной пуговицы, и я ищу новую.
Because the button is understood as something attached on the jacket, not something located inside it.
- на куртке = on the jacket
- в куртке = in the jacket
Russian often uses на for things that are on a surface or fastened to clothing: buttons, pockets, badges, stains, and so on.
Не хватает is from не хватать, which often means to be lacking, to be missing, or not to be enough.
So here it literally means something like:
- On the jacket, one button is lacking
In more natural English, we say One button is missing from the jacket.
Because не хватает suggests that something which should be there is absent.
- нет = there is no / there isn’t
- не хватает = something is missing; there is a shortage/lack
For a jacket, buttons are expected parts of it, so не хватает is very natural. It implies an incomplete set.