0

シンプルな HTML ページから 2 つのテーブルを削除しようとしています。ページには 2 つのテーブルしか含まれていません。ページ コードは次のとおりです。

<html>
<body>
<h3>Table 1</h3>

<table class="details" border="1" cellpadding="0" cellspacing="0">
<tbody><tr>
<th>1</th>
<td>2</td>
</tr>
</tbody></table>

<h3>Table 2</h3>

<table class="details" border="1">
<tbody><tr>
<th>1</th>
<td>2</td>
</tr><tr>
<th>3</th> 
<td>4</td>
</tr>
</tbody></table>

</body>
</html>

次を使用してテーブルの1つを削除しても問題ありません。

var elmDeleted = document.getElementsByClassName('details').item(0);
elmDeleted.parentNode.removeChild(elmDeleted);

また

var elmDeleted = document.getElementsByClassName('details').item(1);
elmDeleted.parentNode.removeChild(elmDeleted);

しかし、ユーザースクリプトでこれらのコマンドを連続して使用して、両方のテーブルを削除できませんでした:

var elmDeleted = document.getElementsByClassName('details').item(0);
elmDeleted.parentNode.removeChild(elmDeleted);
var elmDeleted = document.getElementsByClassName('details').item(1);
elmDeleted.parentNode.removeChild(elmDeleted);

お知らせ下さい

4

2 に答える 2

1

Sebastian の答えは本当にあなたが探している答えですが、明確にするために、どのようにそれを行うことができるかを示します。

var elmDeleted = document.getElementsByClassName('details').item(0);
elmDeleted.parentNode.removeChild(elmDeleted);
var elmDeleted = document.getElementsByClassName('details').item(0);
elmDeleted.parentNode.removeChild(elmDeleted);

.item[0]両方の時間を削除していることに注意してください。ページの最初のものを両方とも削除します。そうでなければ、これ:

var elmDeleted = document.getElementsByClassName('details').item(1);
elmDeleted.parentNode.removeChild(elmDeleted);
var elmDeleted = document.getElementsByClassName('details').item(0);
elmDeleted.parentNode.removeChild(elmDeleted);

... 2番目を削除し、次に最初のものを削除します。

(私が呼ぶもの) きちんとしていること: (==よりコンパクト)

for(i=0;i<2;i++)(temp=document.getElementsByClassName('details').item(0)).parentNode.removeChild(temp);

補足として、ページには 2 つのテーブルしかないと言っているので、 everydocument.getElementsByClassName('details')を に置き換えることができますdocument.getElementsByTagName('table')

また、私のコンパクト バージョンでは、 を に置き換えてi<2、最初の 2 つのテーブルだけでなく、すべてi<document.getElementsByClassName('details').lengthの「詳細」テーブルを削除することもできます。

これが役に立ったことを願っています:)

于 2012-08-04T21:03:22.147 に答える
1

古いテーブル #0 を削除すると、古いテーブル #1 が新しいテーブル #0 になります。したがって、テーブル #1 を取得しようとすると失敗します。

于 2012-08-04T16:05:08.810 に答える