Creo que lo que tienes que hacer es impedir en PHP directamente que se rellenen los selects con las condiciones que tu quieras te va a resultar mucho más facil que hacerlo por javascript.
Igualemente la función está mal, porque no estás cogiendo los elementos si no los values de los elementos si he entendido bien tu pregunta creo que buscas algo así:
Eliminar los options del selec_convenio que no estén en el select_convenio_2
Código Javascript
:
Ver originalvar convenio = document.getElementById('select_convenio').childNodes;
var convenio2 = document.getElementById('select_convenio_2').childNodes;
var opt;
var opt2;
var existe;
for(i=0 ; i<convenio.length ; i++){
existe = "no";
if(convenio[i].nodeType != 3){
opt = convenio[i].id;
for(j=0;j<convenio2.length;j++){
if(convenio2[i].nodeType != 3){
opt2 = convenio2[j].id;
if(opt == opt2){
existe = "si";
break;
}
}
}
if(existe == "no"){
document.getElementById('select_convenio').removeChild(convenio[i]);
}
}
}