4

我有以下 javascript 代码:

    function changeButtonState(targetSelector, action, iconClass) {
        var $target = $(targetSelector);
        var $targetSpan = $(targetSelector + ' span');
        $targetSpan.removeClass('sprite-blank').addClass(iconClass);

$targetSpan.removeClass(..).addClass如果 iconClass 在调用函数时有一个值,我怎样才能使它唯一起作用。我想我感到困惑的是我是否检查它是否已定义或者我是否检查它的长度是否为 0 或更多?

4

2 回答 2

3

如果您也检查一下,那将是最好的undefined

function changeButtonState(targetSelector, action, iconClass) {    
    var $target = $(targetSelector);
    if (typeof iconClass !== "undefined" && iconClass) {
        var $targetSpan = $(targetSelector + ' span');
        $targetSpan.removeClass('sprite-blank').addClass(iconClass);
    }
}​

更新 即使这是一个非常古老的答案,它仍然是相关的。因此,我想根据@jeremy 的评论用改进的答案来更新我的答案。

function changeButtonState(targetSelector, action, iconClass) {    
    var $target = $(targetSelector);
    //this will not throw exception since iconClass is implicitly declared through the input parameter 
    if (iconClass) {
        var $targetSpan = $(targetSelector + ' span');
        $targetSpan.removeClass('sprite-blank').addClass(iconClass);
    }
}​
于 2012-12-29T05:44:57.297 回答
1

这将允许用户(很可能是您)通过给它一个虚假值或真实值来指定您是否希望它处于活动状态。您可能还想使用typeof运算符检查它是否未定义。

if(iconClass) {
    $targetSpan.removeClass('sprite-blank').addClass(iconClass);
}
于 2012-12-29T05:42:31.340 回答