NAME

HTML::DOM::Collection::Options - A subclass of HTML::DOM::Collection for 'option' elements

SYNOPSIS

  use HTML::DOM;
  $doc = HTML::DOM->new;
  $doc->write('
      <form name=theform>
        <select name=choice>
          <option>
          <option>
        </select>
      </form>
  ');
  $doc->close;
  
  $options = $doc->forms->{theform}{choice}->options;
  # returns an HTML::DOM::Collection::Options object
  
  $options->[0]; # first option
  $options->item(0); # same
  
  $options->[0] = undef; # deletes it
  delete $options->[0]; # likewise
  
  $options->length; # same as scalar @$options

DESCRIPTION

This inherits from HTML::DOM::Collection and adds a few extra methods for compatibility with WWW::Mechanize. This is used to represent a 'select' element's list of options.

CONSTRUCTOR

Normally you would simply call HTML::DOM::Element::Select's options method (as in the "SYNOPSIS"). But if you wall to call the constructor anyway, here is the syntax:

  $elements = HTML::DOM::Collection::Options->new(
      $nodelist, $select_elem
  )

$nodelist should be a node list (HTML::DOM::NodeList) object.

ARRAY INTERFACE

You can use an options collection as an array reference. You can even modify it this way. If you assign undef to an array element or delete it, it will be removed completely, so $options->[0] = undef will cause $options->[1] to become $options->[0], for example.

Don't rely on array manipulation functions, such as shift, push, splice, etc. Also, don't rely on list assignments.

METHODS

$options->length

Returns the number of items in the collection.

$options->item($index)

Returns item number $index, numbered from 0. Note that you call also use $elements->[$index] for short.

$options->namedItem($name)

Returns the item named $name. You can also write $elements->{$name}.

These last few are provided for WWW::Mechanize compatibility.

$options->type

Returns the string 'option'.

$options->name

Returns the name of the 'select' element.

$options->possible_values

Returns the a list of the options' values. Provided for WWW::Mechanize compatibility.

$options->value
$options->value('new_value');

Selects the option with the value given and returns the old value, or simply returns the value if there is no argument.

$options->disabled

Returns true if all the options are disabled, false otherwise.

$options->form_name_value;

Returns a list consisting of (0) the name of the 'select' element and (1) the value of the selected option.

SEE ALSO

HTML::DOM

HTML::DOM::Collection

HTML::DOM::Element::Select

HTML::DOM::Element::Form

The source of HTML/DOM/Element/Form.pm, where this is implemented.