Ciao a tutti

Avendo un codice come il seguente:
codice:
<div class="elem">
Collegamento


Testo testo testo</p>
</div>
se voglio in qualche modo rendere tutto il div cliccabile uso una funzione simile:

codice:
$('.elem').click(function(){
  var link=$(this).children('a').attr('href');
  location.href=link;
});
a livello logico è corretta. Perchè allora non funziona. Ovvero non mi restituisce nella variabile link il contenuto dell'attributo href.

Mentre se faccio:
codice:
var link=$(this).children('a').html();
link assume il valore corretto di :
codice:
Collegamento
e se faccio:
codice:
var link=$(this).find('a').attr('href');
link assume il valore corretto di:
codice:
http://indirizzo
qual'è secondo voi il motivo o l'errore in cui incorro?