hpricot:Hpricot::Traverse#children_of_type

>> require "hpricot"
=> true
>> doc = Hpricot('<div><p>foo1</p><p>foo2</p></div><div><p>foo3</p><p>foo4</p><a href="http://www.foo.org/">foo</a></div>')
=> #<Hpricot::Doc {elem <div> {elem <p> "foo1" </p>} {elem <p> "foo2" </p>} </div>} {elem <div> {elem <p> "foo3" </p>} {elem <p> "foo4" </p>} {elem <a href="http://www.foo.org/"> "foo" </a>} </div>}>
>> doc.at("div").children_of_type('p')
=> [{elem <p> "foo1" </p>}, {elem <p> "foo2" </p>}]
>> doc.search("div").children_of_type('p')
NoMethodError: undefined method `children_of_type' for #<Hpricot::Elements:0xb7d44420>
	from (irb):210
	from ^C:0
>> doc.search("div")[1].children_of_type('p')
=> [{elem <p> "foo3" </p>}, {elem <p> "foo4" </p>}]
>> doc.search("div")[1].search('p')
=> #<Hpricot::Elements[{elem <p> "foo3" </p>}, {elem <p> "foo4" </p>}]>

多重に search するのと何が違う?