Функция $ создает объект jquery, который представляет элемент dom. Вы можете изменить атрибуты объекта, но эти изменения не будут сделаны видимыми в элементе, который он «представляет», если jquery не знает, что с ними делать (возможно, назначая обработчик события click).
Поэтому, когда вы делаете первый выбор, он изменяет созданный вами объект, но ничего не делает с реальным HTML-элементом. Когда вы снова запустите $, он создаст объект SEPARATE, который не сохранит изменения атрибута, сделанные вами в первый раз.
вы можете внести прямое изменение в html-объект: (без jquery)
getElementByID ("theid"). Myprop = "hello world";
в результате: <p id="theid" myprop="hello world"></p>
, но установка атрибута объекта jquery просто не сделает этого. Чтобы получить эквивалентный эффект в jquery, используйте метод .data, предложенный Кеном Браунингом. (опять слишком поздно ...): D