this:
$(document).ready(function(){
$(".productSelect").click(function() {
alert( this.innerHTML );
});
});
is equivalent to this:
$(document).ready(function(){
$(".productSelect").bind('click',function() {
alert( this.innerHTML );
});
});
but bind will "attach/trigger" that anonymous function upon document.ready ONLY to already existing elements with class="productSelect".
So, the elements that you are adding via ajax with class="productSelect" do not exist upon page load (document.ready). They exist LATER on AFTER the bind has done executing, so they will NOT trigger that alert. Instead of bind() you need to use live(). live() will "keep an eye" for dynamically created elements and if needed will attach the necessary anonymous function:
$(document).ready(function(){
$(".productSelect").live('click',function() {
alert( this.innerHTML );
});
});