hi, after trying to figure out how i could easily use the the asp.net server control clientid's for jquery, especially when i had more than one ascx on a page, i came up with the following:
function getAspNetClientIds(prefix) { var ids = new Object(); var prefixLength = prefix.length; var delimiter = "_"; $("[id^=" + prefix + "]").each(function() { var bits = this.id.substr(prefixLength).split(delimiter); var l = bits.length - 1; var node = ids; for (var i = 0; i < l; i++) { var cn = node[bits[i]]; if (cn == null) { cn = new Object(); node[bits[i]] = cn; } else if (typeof cn == "string") { node[bits[i]] = new Object(); node[bits[i]].value = cn; cn = node[bits[i]]; } node = cn; } node[bits[l]] = "#" + this.id; }); return ids; } which means i can just do something like var ids = getAspNetClientIds("ctl00_ContentPlaceHolder1_"); whilst this might not been immediately helpful, it does mean i can then do something like: doAddressStuff(ids.MainPerson.MainAddress); doAddressStuff(ids.MainPerson.PreviousAddress); doAddressStuff(ids.SecondPerson.MainAddress); doAddressStuff(ids.SecondPerson.PreviousAddress); does this seem like a reasonable method, or is there a better approach?