1

私の要件は非常に単純です。変数をチェックし、それに応じてクラスを表示/非表示にする必要があります。これは、SharePoint 発行ページにあります。次のスニペットを使用しても機能しません。

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

厳密な比較を使用してください===。変数のを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 に答える
0

変数をifステートメントの「show」と比較するには、equality( ==)またはstrict equality( )演算子を使用する必要があります。クラスを表示するだけでなく非表示にする必要があるとおっしゃっていたので、表示するクラスを変更したいと思います。それに応じて、残りのコードを調整しました。===source

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