Code :
$("#matiere option[value='mat']").remove();
$matiere.append('<option value="' + index + '">' + value + '</option>');
Si tu comprends ce que tu codes, tu devrais voir le problème.
PS: les variables "$xxx" en JS, je trouve cela peu lisible car se confondant avec des $.xxx