Just ran an experiment:

temp = "<div class='blah'>Blah blah</div>"
body = $('body')
body.append(temp)
bb = $('.blah')

temp2 = "<div class='blah'>Blah blah2323</div>"
body.append(temp2)
bb2 = $('.blah')

bb2!=bb, which means that the selectors select whatever HTML elements appear on-screen when they are executed (ie, they are not lazy loading).  Given this, it is much preferable to store the selector string, such as '.blah' in the class, and use the selector on demand.  If not, it will have selected things that are not on the screen anymore, or not select things that are on the screen.