0

行数のテーブルがnあります。n毎分の変更/更新の値。すべての行の最初<td>の行には、テキストが含まれるか、空白になります。最初の行と最初のセルに text が含まれる行を除くすべての行を削除/削除したい'xyz'。それで、どうすればこれを行うことができますか?このtable要素は変数に格納されますparentTable

私はJavaScriptとプログラミングが初めてです。どんな助けでも大歓迎です。ありがとう。

2 行目だけでテストしましたが、テキストがxyzセルにないのに何も起こりませんでした。

if(parentNode.childNodes[1].innerText !== "xyz")
parentTable.deleteRow[1];

そして、すべての行をループしてこれを行うにはどうすればよいですか?

編集: すべての行の最初のセルの HTML。

<td class=wbwhite align=center width=40 style="border-top: none; border-left:none; border-right:none;">
&nbsp;
<a href="www.kasdjfkasd.sadsdk.comi" class=pi>xyz</a>
&nbsp;
</td>
4

3 に答える 3

1

これを試して:

    var table = parentTable;
    var rowCount = table.rows.length;

    for ( var i = 1; i < rowCount; i++ )
    {
        var row = table.rows[i];
        var val=  row.cells[0].childNodes[0].innerHTML.toString();

        if ( 'xyz' != val )
        {
            table.deleteRow( i );

            rowCount--;
            i--;
        }
    }
于 2013-03-20T12:07:50.200 に答える
0

次のコードを使用します (純粋な JavaScript):

(テーブルに id = があると仮定しますtableId)。

var all = document.querySelectorAll('#tableId > tbody > tr');

// i = 1 not i = 0 to keep the first row.
for (var i = 1; i < all.length; i++) {
    var td = all[i].querySelectorAll('td')[0];
    if ( td.textContent != "xyz" ) {
        all[i].parentNode.removeChild(all[i]);
    }
}
于 2013-03-20T12:07:11.270 に答える
0

これを試すことができます

var allRows = parentTable.getElementsByTagName('TR');

for(var i=1; i<allRows.length;)
{
    var tr = allRows[i];
    var firstTd = tr.getElementsByTagName('TD')[0];
    if(firstTd.innerHTML !== 'xyz')
    {
        tr.parentNode.removeChild(tr);
    }else{
        i++;
    }
}
于 2013-03-20T12:13:53.187 に答える