0

JavaScript関数にfalseオプションを設定して、関数が実行されないようにするにはどうすればよいですか?

コードは次のとおりです。

    function deleteExtraRows(tableID){
        tableID = '#'+tableID;    
       $(tableID+' tr').each(function(){
            if($(tableID+' tr').length>1){
                $(this).remove();
            }
        });

    }

また、(false)オプションを指定できるようにしたいので、deleteExtraRows(false)を実行できます。これにより、関数は実行されません。これはちょっと逆に思えますが、これができれば、私が取り組んでいるプロジェクトに適合します。

助けてください!

4

7 に答える 7

7

これでうまくいくはずです:

function deleteExtraRows(tableID){
    if(tableID === false)
        return;
    ....
}

タイプもチェックするので、===ではなく使用することが重要です。tableIDが0または空の文字列の場合、trueと評価され、同様に返されます。=====

于 2012-10-03T17:24:49.483 に答える
4

IDが。の要素がページにない場合は、すでに機能しているはずですfalse

于 2012-10-03T17:25:02.353 に答える
1

このようにしてください

 function deleteExtraRows(tableID){
        if(!tableID)
            return;
        tableID = '#'+tableID;    
        $(tableID+' tr').each(function(){
            if($(tableID+' tr').length>1){
                $(this).remove();
            }
        });
    }
于 2012-10-03T17:25:20.447 に答える
0

ただ戻る

returnは、関数の実行を停止します。

function deleteExtraRows(tableID, valid ){
      if(!valid)
         return;
        tableID = '#'+tableID;    
       $(tableID+' tr').each(function(){
            if($(tableID+' tr').length>1){
                $(this).remove();
            }
        });

    }
于 2012-10-03T17:24:44.397 に答える
0

これを試して:

function deleteExtraRows(tableID, doWork){
    if (!doWork) return;
        tableID = '#'+tableID;    
       $(tableID+' tr').each(function(){
            if($(tableID+' tr').length>1){
                $(this).remove();
            }
        });
    }
于 2012-10-03T17:24:45.093 に答える
0

どこで呼ばれているの?ただ行う:

if(!!tableID) deleteExtraRows(tableID);
于 2012-10-03T17:27:31.290 に答える
0

上記のGregの答えをお勧めしますが、次のように書き直すことで、コードを少し最適化できると考えました。

function deleteExtraRows (tableID) {

    if (tableID === false) {
        return;
    }

    $('#' + tableID).find('tr:not(:last)').remove();
}

...そこであなたのコードを誤解していない限り。

于 2012-10-03T17:40:11.253 に答える