Q:

How to generate dropdownlist items based on another dropdown item selection in javascript jquery?

I found similar questions here but those were server side code, whereas I wanted to do it using javascript & jquery. Below are the codes..  
C# code to return data in JSON format 
public JsonResult GetEmployeesByDepartment(int departmentId)
{
  var employees = new EmployeeInfoRepository().GetEmployeesByDepartmentId(departmentId);
  var employeeDictionary = new Dictionary<int, string>();

  foreach (var emp in employees)
  {
    if(!employeeDictionary.ContainsKey(emp.EmployeeID))
    {
      employeeDictionary.Add(emp.EmployeeID, emp.FullName);
    }
  }

  return Json(employeeDictionary, JsonRequestBehavior.AllowGet); 
}

Javascript code for Binding Data into DropDownList 
$("#ddlDepartment").change(function () {
  var id = $("#ddlDepartment option:selected").val();
  GetEmployeeByDepartmentId(id);
});

function GetEmployeeByDepartmentId(id) {
  var postData = {
    departmentId: id
  };

  $.ajax('/Leave/GetEmployeesByDepartment', {
    method: 'GET',
    dataType: 'JSON',
    data: postData,
    async: false,

    success: function (response) {

      $.each(response, function() {
        $("#ddlEmployee").append(
          $('<option/>', {
            value: this,
            html: this
          })
        );
      });
    }
  });
} 

I also tried below inside the "Success" function, but this too doesn't work.
if (response == false) {
  alert("No Employee found for this department");
} else {
  $("#ddlEmployee").html = "";
  response.each(function(index, item) {
    $("#ddlEmployee").append("<option value='item.Key'>item.Value </option>");
  });
}

EDITED code as suggested 
C# code to return data in JSON format 
public JsonResult GetEmployeesByDepartment(int departmentId)
{
  var employees = new EmployeeInfoRepository().GetEmployeesByDepartmentId(departmentId);
  return Json(employees, JsonRequestBehavior.AllowGet); 
}  

Javascript code (Success function only) 
if (response == null) {
  alert("No Employee found for this department");
} else {
    $.each(response, function () {
       var option = $('<option></option>');
         option.val(response.EmployeeID);
         option.text(response.FullName);
         $("#ddlEmployee").append(option);
    });
}  

"Success" function is called and an array of object is returned. However, the data is still not binding into "ddlEmployee".  
Final Solution
Currently doing this using below code- 
$("#ddlEmployee").empty();
$.each(response, function (key, value) {
  $("#ddlEmployee").append('<option value=' + value.EmployeeID + '>' + value.FullName + '</option>');
});

A:

Not sure why your returning a dictionary. I assume the EmployeeID is unique so it can be simplified to:
var employees = new EmployeeInfoRepository()
  .GetEmployeesByDepartmentId(departmentId)
  .Select(e => new
  {
    ID = e.EmployeeID,
    Name = e.FullName
  }
return Json(employees, JsonRequestBehavior.AllowGet); 

and in the script (success function)
$.each(response, function() {
  var option = $('<option></option>');
  option.val(response.ID);
  option.text(response.Name);
  $("#ddlEmployee").append(option);
});

