Raycast using object Ids not working

I’m trying to assign different standard materials for different parts of the model through ray casting, using its object ID as reference. However, when I try to apply more than one material for a different id of the same model, all the objects are showing up the same material. unable to differentiate between IDs.

    var intersects = raycaster.intersectObjects(scene.children, true);
if (intersects.length > 0) {

  for (var i = 0; i < intersects.length; i++) {
    if (intersects[i].object.id) {

      intersects[i].object.material = material1; /* standrad material */
      intersects[i].object.material.needsUpdate = true;
    }
  }

    /* I'm using the buttons to change the materials */

    $('.btn1').click(function() {
      for (var i = 0; i < intersects.length; i++) {
        intersects[i].object.material = material2;
        intersects[i].object.material.needsUpdate = true;
      }
    });

    $('.btn2').click(function() {
      for (var i = 0; i < intersects.length; i++) {
        intersects[i].object.material = material3;
        intersects[i].object.material.needsUpdate = true;
      }
    });
  }