Remove wrapping div from field type radios (Drupal 7) I am trying my hand at theming form output and am stuck on radios. I am attempting to remove the div that wraps a set of radios,

div.form-item &gt; div.form-radios &gt; div.form-type-radio &gt; input[type="radio"]+label
                ^^^^^^^^^^^^^^^ &lt;- Remove that


I have a sample form:

function no_name_form($form, &amp;$form_submit) {
    $form['radios'] = array(
        '#type'    =&gt; 'radios',
        '#title'   =&gt;'Question text',
        '#options' =&gt; array(
            '1' =&gt; t('yes'),
            '0' =&gt; t('no')
        ),
        '#theme'   =&gt; 'no_name_radios',
    );
    return $form;
}


and I register the theme functions for both the radios group and individual radio buttons:

function no_name_theme($existing, $type, $theme, $path) {
    return array(
        'no_name_radios' =&gt; array(
            'arguments' =&gt; array('element' =&gt; NULL),
        ),
        'no_name_radio' =&gt; array(
            'arguments' =&gt; array('element' =&gt; NULL),
        ),
    );
}


Then I define the theme functions:

function theme_no_name_radios($variables) {
    $element = $variables['element'];
    $attributes = array();
    if (isset($element['#id'])) {
        $attributes['id'] = $element['#id'];
    }
    $attributes['class'] = 'form-radios test';
    if (!empty($element['#attributes']['class'])) {
        $attributes['class'] .= ' ' . implode(' ', $element['#attributes']['class']);
    }
    if (isset($element['#attributes']['title'])) {
        $attributes['title'] = $element['#attributes']['title'];
    }
    return '&lt;div' . drupal_attributes($attributes) . '&gt;' . (!empty($element['#children']) ? $element['#children'] : '') . '&lt;/div&gt;';
}

function theme_no_name_radio($variables) {
  $element = $variables['element'];
  $element['#attributes']['type'] = 'radio';
  element_set_attributes($element, array('id', 'name','#return_value' =&gt; 'value'));

  if (isset($element['#return_value']) &amp;&amp; $element['#value'] !== FALSE &amp;&amp; $element['#value'] == $element['#return_value']) {
    $element['#attributes']['checked'] = 'checked';
  }
  _form_set_class($element, array('form-radio'));

  return '&lt;input' . drupal_attributes($element['#attributes']) . ' /&gt;';
}


When I use even the stock code from Drupal 7 to build the theme functions, the radios come out blank, and at this point none of the code has changed.

Ultimately, I want to end up with this:

div.form-item div.form-type-radio &gt; input[type="radio"]+label


I am not sure where I went wrong.
The div.form-radios is set by the theme wrapper of the radios. Use this code to prevent the theme wrapper from adding the additional div:

function no_name_form($form, &amp;$form_submit) {
  $form['radios'] = array(
    '#type'    =&gt; 'radios',
    '#title'   =&gt;'Question text',
    '#options' =&gt; array(
        '1' =&gt; t('yes'),
        '0' =&gt; t('no')
    ),
    '#theme'   =&gt; 'no_name_radios',
    '#theme_wrappers' =&gt; array(),
  );
  return $form;
}