セレクター

$('#sample').val()

とした場合、

<input id="sample" value="test">

のようなタグがあった場合に、value属性の値「test」が取れる。

一方、タグがない場合には値は取れないと思っていたが、下記のような場合もセレクターは動作する。idがsampleのタグがないからundefinedを返すのは、そういうものですね。

//タグではなく、宣言だけがある場合
var sample= "#sample";

この場合、

alert($('#sample').val());

はundefinedを返す。