Perl 如何使用Mojolicious删除所有选定的DOM元素?
我试图用mojolicous从表中删除第一列(通常是第n列)。 我现在是这样做的:Perl 如何使用Mojolicious删除所有选定的DOM元素?,perl,mojolicious,Perl,Mojolicious,我试图用mojolicous从表中删除第一列(通常是第n列)。 我现在是这样做的: $table->find('td:first')->each(sub { my ($e) = @_; $e->remove }); 但这不起作用 我做错了什么 (是的,我知道我问了很多关于Mojolicious的问题-刚刚开始,很酷)没有关于:first 以下用于隔离第一列,然后是单元格: 也可以使用等。请务必查看所有可用的不同选择器,以确保哪些选择器最适合您的用途 use strict; u
$table->find('td:first')->each(sub { my ($e) = @_; $e->remove });
但这不起作用
我做错了什么
(是的,我知道我问了很多关于Mojolicious的问题-刚刚开始,很酷)没有关于:first
以下用于隔离第一列,然后是单元格:
也可以使用等。请务必查看所有可用的不同选择器,以确保哪些选择器最适合您的用途
use strict;
use warnings;
use Mojo::DOM;
my $dom = Mojo::DOM->new(do {local $/; <DATA>});
$dom->find('tr > td:nth-child(1)')->remove;
print $dom;
__DATA__
<html>
<head>
<title>Hello Tables</title>
</head>
<body>
<h1>Hello world</h1>
<table>
<tr><td>Row 1 Col 1</td><td>Row 1 Col 2</td><td>Row 1 Col 3</td></tr>
<tr><td>Row 2 Col 1</td><td>Row 2 Col 2</td><td>Row 2 Col 3</td></tr>
<tr><td>Row 3 Col 1</td><td>Row 3 Col 2</td><td>Row 3 Col 3</td></tr>
<tr><td>Row 4 Col 1</td><td>Row 4 Col 2</td><td>Row 4 Col 3</td></tr>
</table>
</body>
</html>
使用严格;
使用警告;
使用Mojo::DOM;
my$dom=Mojo::dom->new(do{local$/;});
$dom->find('tr>td:n个子项(1)->删除;
打印$dom;
__资料__
你好,桌子
你好,世界
第1列第1列第1列第2列第1列第3列
第2列第1列第2列第2列第2列第3列
第3列第1列第3列第2列第3列第3列
第4列第1列第4列第2列第4列第3列
产出:
<html>
<head>
<title>Hello Tables</title>
</head>
<body>
<h1>Hello world</h1>
<table>
<tr><td>Row 1 Col 2</td><td>Row 1 Col 3</td></tr>
<tr><td>Row 2 Col 2</td><td>Row 2 Col 3</td></tr>
<tr><td>Row 3 Col 2</td><td>Row 3 Col 3</td></tr>
<tr><td>Row 4 Col 2</td><td>Row 4 Col 3</td></tr>
</table>
</body>
</html>
你好,桌子
你好,世界
第1列第2列第1列第3列
第2列第2列第2列第3列
第3列第2列第3列第3列
第4列第2列第4列第3列
CSS2有一个“是”,我在第三句话中提到并链接到了这一点。我怀疑他使用的第一个
是从Mojo::DOM
中可用的方法调用中提取的,因此实际上不像他使用的那样是CSS选择器。