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 に答える