1

我的要求很简单,它必须检查一个变量并相应地显示/隐藏一个类。它位于共享点发布页面上。使用以下代码段不起作用。

if ( source = 'show')
{
$('.classshide').hide();
}
else
{
$('.classsshow').hide();
}

只有当源变量为show时才有效,反之亦然,当不等于show或等于hide时,请隐藏classshow。

4

3 回答 3

2

你的平等测试是错误的。

if ( source = 'show')

应该

if ( source == 'show')

或者它可能是

if ( source === 'show') //if source is a string and you don't want type coercion
于 2013-03-08T18:17:04.377 回答
0

您需要使用相等 ( ==) 或严格相等 ( ===) 运算符将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();
}
于 2013-03-08T18:28:23.837 回答
0

请使用严格的比较===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();
}
于 2013-03-08T18:18:53.017 回答