I've tried using $(this), but can't seem to get that to work.
When I wrote it without the each() it put every phone number icon multiple times on each card, which is why I started down the .each() approach. Any help would be greatly appreciated.

Your problem isn't in the appendTo, it's in the first $('.phone'). That is selecting all elements with class=phone, not just the ones inside the specific li.card you're iterating on. So when the .each() gets to the very last li.card, it takes all the other phone elements and appends them to that last card.

To fix, just replace $('.phone') with $(this).find('.phone')

and then, as you originally tried, .appendTo($(this)) should work fine.