Monday 15 March 2010

jquery - Find previous elements on the page -



jquery - Find previous elements on the page -

<div class="row"> <label for="cv1">upload cv</label> <div class="row-holder"> <input type="file" name="ctl00$main$rptjobs$ctl02$fileuploadcv" id="ctl00_main_rptjobs_ctl02_fileuploadcv" class="updatename" style="display:none;" /> <input name="ctl00$main$rptjobs$ctl02$fucv1" type="text" id="ctl00_main_rptjobs_ctl02_fucv1" class="upload" /> <label id="ctl00_main_rptjobs_ctl02_fucvlabel" class="uploadbtn" for="ctl00_main_rptjobs_ctl02_fileuploadcv">browse</label> </div> </div> <div class="row"> <label for="letter1">upload letter of application</label> <div class="row-holder"> <input type="file" name="ctl00$main$rptjobs$ctl02$fileuploadcl" id="ctl00_main_rptjobs_ctl02_fileuploadcl" class="updatename" style="display:none;" /> <input name="ctl00$main$rptjobs$ctl02$fucl1" type="text" id="ctl00_main_rptjobs_ctl02_fucl1" class="upload" /> <label id="ctl00_main_rptjobs_ctl02_fucllabel" class="uploadbtn" for="ctl00_main_rptjobs_ctl02_fileuploadcl">browse</label> </div> </div> <div class="row"> <div class="row-holder"> <input type="submit" name="ctl00$main$rptjobs$ctl02$btnsubmit" value="send" id="ctl00_main_rptjobs_ctl02_btnsubmit" class="jqueryvalidate" /> </div> </div>

let's start html:

please note sample of dom repeater. i'm trying validate fileuploads aren't empty. it's class "upload" has contain value. input class="upload" has dynamic id created repeater can referenced it's class.

$(document).ready(function() { $('input.jqueryvalidate').click(function() { var tempcv; var tempcl; tempcv = $(this).prev().prev().prev().find(".upload"); homecoming false; }); });

i've tried .prev(), .parent() , .find() getundefined`. can spot going wrong this?

you missundersand .prev(), prev previous sibling. wanted utilize .parent().

any way said in comment , asciismoke sugests too, using .closest() create more maintanable less dependent of dom hierarchie

$(this).closest('.row').siblings('.row').find('.upload') .closest('.row') finds parent row of clicked input .siblings('.row') finds siblings row of previous row .find('.upload') finds .upload in set of rows find before.

jquery

No comments:

Post a Comment