我的要求很简单,它必须检查一个变量并相应地显示/隐藏一个类。它位于共享点发布页面上。使用以下代码段不起作用。
if ( source = 'show')
{
$('.classshide').hide();
}
else
{
$('.classsshow').hide();
}
只有当源变量为show时才有效,反之亦然,当不等于show或等于hide时,请隐藏classshow。
我的要求很简单,它必须检查一个变量并相应地显示/隐藏一个类。它位于共享点发布页面上。使用以下代码段不起作用。
if ( source = 'show')
{
$('.classshide').hide();
}
else
{
$('.classsshow').hide();
}
只有当源变量为show时才有效,反之亦然,当不等于show或等于hide时,请隐藏classshow。
你的平等测试是错误的。
if ( source = 'show')
应该
if ( source == 'show')
或者它可能是
if ( source === 'show') //if source is a string and you don't want type coercion
您需要使用相等 ( ==
) 或严格相等 ( ===
) 运算符将source
变量与 if 语句中的“显示”进行比较。因为你提到需要显示和隐藏类,我猜你想交替显示哪些类,所以我相应地调整了其余代码。
if ( source === 'show' )
{
$('.classshide').hide();
$('.classsshow').show();
}
else if ( source === 'hide' )
{
$('.classsshow').hide();
$('.classshide').show();
}
else // for some reason source is neither 'show' or 'hide'
{ //default to the logic for if it is 'hide'
$('.classsshow').hide();
$('.classshide').show();
}
请使用严格的比较===
。type
它更快,因为它在比较value
变量时不必转换。
编辑:
// get what the current state of hide/show is
var source = $('.classhide').length === 0 ? 'show' : 'hide';
if ( source === 'show') {
$('.classshide').hide();
} else {
$('.classsshow').hide();
}