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


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 the HTML::DOM::Collection manpage and adds a few extra methods for compatibility with the WWW::Mechanize manpage. This is used to represent a 'select' element's list of options.


CONSTRUCTOR

Normally you would simply call the HTML::DOM::Element::Select manpage'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 (the HTML::DOM::NodeList manpage) 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 the WWW::Mechanize manpage 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 the WWW::Mechanize manpage 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

the HTML::DOM manpage

the HTML::DOM::Collection manpage

the HTML::DOM::Element::Select manpage

the HTML::DOM::Element::Form manpage

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