How to disable game components from both a GameObject and its children

I am working with NGUI to set up flashy buttons in my game. But I hit a wall and I wanted to know how to do this. I have this code:

    void Start()
    {
        foreach (GameObject x in GameObject.FindGameObjectsWithTag("ZoomInOut"))
        {
            x.GetComponent<UISprite>().enabled = false;
        }
    } 

What this is, its instantiating my zoom in / zoom out buttons; and, sure enough it is making my button invisible but not the labels that are part of this object who happen to have the same component. So my question is how do I go on about disabling the child components? Many thanks in advance.

In the above example you’re disabling the UISprite component.
Should work if you use the SetActive option via NGUITools in your code.

void Start()
{
foreach (GameObject x in GameObject.FindGameObjectsWithTag("ZoomInOut"))
{
NGUITools.SetActive(x, false);
}
} 

Hope this helps!
Cheers,
Z

Using Unity you can iterate through the object and children:

UISprite[] uiSprite;

void Start(){
   uiSprite = GetComponentsInChildren<UISprite>();
}

Now you can access the components of all children and the object itself.

If the issue is else where, you can iterate through the transform to find all children.
This examples below disables all children.

foreach(Transform child in transform){
   child.SetActive(false);
}