给JavaScript函数一个“false”选项?

给JavaScript函数一个“false”选项?,javascript,Javascript,如何使JavaScript函数有一个false选项,以确保函数不执行 代码如下: function deleteExtraRows(tableID){ tableID = '#'+tableID; $(tableID+' tr').each(function(){ if($(tableID+' tr').length>1){ $(this).remove(); }

如何使JavaScript函数有一个false选项,以确保函数不执行

代码如下:

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

    }
我还希望能够给它一个false选项,这样我就可以运行deleteExtrawsFalse,这将不会使函数运行。我知道这似乎有点倒退,但如果我能做到这一点,它将适合我正在进行的项目

请帮忙

一定要回来

return停止函数的执行

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

    }
试试这个:

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

这应该可以做到:

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

重要的是使用===而不是==因为===也会检查类型。如果tableID为0或空字符串,它将计算为true并返回。

如果页面上没有id为false的元素,那么您所拥有的应该已经起作用了。

这样做

 function deleteExtraRows(tableID){
        if(!tableID)
            return;
        tableID = '#'+tableID;    
        $(tableID+' tr').each(function(){
            if($(tableID+' tr').length>1){
                $(this).remove();
            }
        });
    }
它叫什么名字? 只要做:


我建议使用上面Greg的答案,但我认为可以通过如下方式重写代码来优化代码:

function deleteExtraRows (tableID) {

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

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

。。。除非我误解了您的代码。

@Vega-Yours将返回,即使tableID为0或0,该函数对于删除行并将其置于each中毫无意义。为什么不只是一个选择器和删除$tableID+'tr'.not:last.remove;。。。或者,您可以只调用deleteExtraRows而不使用任何参数,基本上实现了您想要做的事情。这仍然会导致字符串连接和至少一个函数调用开销,但这些都是可以优化的。通过更多的研究,我找到了一种绕过所有这些需求的方法,这似乎使整个程序倒退了一步。谢谢大家的评论!就因为我真的对这个话题感兴趣,这样做会更好,还是通过检查相反的结果?i、 e.如果表ID!==false{/*do stuff*/}?@RichardNeilagan他们都会做同样的事情,但这样你会多保存一行代码。@RichardNeilagan我当时可能只是个人喜好,我更喜欢返回,而不是再多签一个标签。@KevinB+@Greg~是的,我就是这么想的。我看到这里所有的答案都倾向于提前返回,我只是想我个人喜欢提前返回是否真的有一个功能上的原因这正是我需要它做的,并且允许更少的代码。非常感谢。
function deleteExtraRows (tableID) {

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

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