I have two tables Table1 and Table2.
Each table contains tag and the options and their values were same.
Now I want to check for each table,
If you change your if statements to be specific to each table that should do it. So:
if($('#table1 tr option[value='+$(this).val()+']:selected').length>1)
and if($('#table2 tr option[value='+$(this).val()+']:selected').length>1)
and actually if you changed the selector to parent selectors you could use just the one code block of any table of this kind:
$('table').each(function() {
$(this).find('select').change(function() {
if ($(this).parent().parent().parent().parent().find($('tr option[value=' + $(this).val() + ']:selected')).length > 1) {
alert('option is already selected');
$(this).val($(this).find("option:first").val()); //put it back to 1
}
});
});
In this one it loops through all tables and on the change event finds the table its part of (so the id doesn't matter) and then runs your check as you had it before.
And even better than that you could use the .closest selector
$('table').each(function() {
$(this).find('select').change(function() {
if ($(this).closest('table').find($('tr option[value=' + $(this).val() + ']:selected')).length > 1) {
alert('option is already selected');
$(this).val($(this).find("option:first").val()); //put it back to 1
}
});
});