Difference between node access methods in Javascript/jQuery -


i'm having little confusion around how selectors in javascript/jquery work. have 2 methods called in identical ways seem return different selectors , can't quite tell why.

if (document.url.indexof("search?s=") !== -1){     updateoldsearch(); } else {     $("li a:contains('search')").bind("click", replacewithsearch); } 

everything works fine in else statement here:

function replacewithsearch(){     this.parentnode.replacechild(searchwrapper, this); //works fine } 

but when access in seems me identical way(clearly it's not identical) breaks

function updateoldsearch(){     var coursetab = $("li a:contains('search')");     coursetab.parentnode.replacechild(newbox, coursetab); //parentnode undefined } 

any explanations happening behind scenes here? there automatic casting jquery i'm abusing?

in first example, this represents native dom node. in second, coursetab represents jquery object.

try second example:

function updateoldsearch(){     var coursetab = $("li a:contains('search')").get(0);     coursetab.parentnode.replacechild(newbox, coursetab); } 

Comments