-our $VERSION = '3.51';
+our $VERSION = '3.53';
# Preloaded methods go here.
$p->content_list;
}
+sub HTML::Element::passover {
+ my ($tree, $child_id) = @_;
+
+ #warn "ARGS: my ($tree, $child)";
+
+ my $exodus = $tree->look_down(id => $child_id);
+
+ my @s = HTML::Element::siblings($exodus);
+
+ for my $s (@s) {
+ next unless ref $s;
+ if ($s->attr('id') eq $child_id) {
+ ;
+ } else {
+ $s->delete;
+ }
+ }
+
+ return $exodus; # Goodbye Egypt! http://en.wikipedia.org/wiki/Passover
+
+}
+
sub HTML::Element::sibdex {
my $element = shift;
# ++$DEBUG if $table{debug} ;
# Get the table element
- warn 1;
+ #warn 1;
$table->{table_node} = ref_or_ld( $tree, $p{table_ld} ) ;
- warn 2;
+ #warn 2;
$table->{table_node} or confess
"table tag not found via " . Dumper($p{table_ld}) ;
if defined $p{tr_proc};
warn "data row redux: " . Dumper $row if $p{debug};
- warn 3.3;
+ #warn 3.3;
$p{td_proc}->($new_tr_node, $row);
push @table_rows, $new_tr_node;
- warn 4.4;
+ #warn 4.4;
redo;
}
remains.
Otherwise our "else" condition fires and the child with id C<welcome> remains.
+=head3 $tree->passover($id_of_element)
+
+In some cases, you know exactly which element should survive. In this case,
+you can simply call C<passover> to remove it's siblings. For the HTML
+above, you could delete C<under10> and C<welcome> by simply calling:
+
+ $tree->passover('under18');
+
=head3 $tree->highlander2($tree, $conditionals, @conditionals_args)
Right around the same time that C<table2()> came into being, Seamstress