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

我建议上面 Greg 的答案,但认为您可以通过像这样重写它来优化您的代码:

function deleteExtraRows (tableID) {

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

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

...除非我在那里误解了您的代码。

于 2012-10-03T17:40:11.253 回答
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 回答