我有以下javascript代码:
function changeButtonState(targetSelector, action, iconClass) {
var $target = $(targetSelector);
var $targetSpan = $(targetSelector + ' span');
$targetSpan.removeClass('sprite-blank').addClass(iconClass);
我怎样才能使$targetSpan.removeClass(..).addClass
仅在iconClass有一个时才有效
调用函数时的值。我想我感到困惑的是我是否检查它是否已定义
或者我是否检查其长度是否为0?
答案 0 :(得分: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);
}
}
答案 1 :(得分:1)
这将允许用户(很可能是您)通过给予假名值或真值来指定您是否希望它处于活动状态。您可能还想使用typeof
运算符来检查它是否未定义。
if(iconClass) {
$targetSpan.removeClass('sprite-blank').addClass(iconClass);
}