2017-04-17 15 views
0

これはかなり基本的なものですが、私が見つけた数少ないリソースから解決策を見つけられません。私は間違って何をしていますか?条件付きのjQueryテキストの変更

$('#jquery-toggle').click(function() { 

    var buttontext = $('#jquery-toggle').text(); 

    if ($(buttontext = 'Toggled')) { 
     ($('#jquery-toggle').text('Not Toggled')); 
    } else { 
     ($('#jquery-toggle').text('Toggled')); 
    } 
}); 

ありがとうございます。

+1

を '使用してこれを短縮することができます') ')は' if(buttontext ==' Toggled ') 'でなければなりません –

+0

あなたに気づかなかったことはありませんか? – dvglsk

+0

ヒント:ブラウザコンソールを使用してエラーがスローされるのを見つけよう – charlietfl

答えて

1

主な問題は、この行です:

if ($(buttontext = 'Toggled')) { 
  • あなたは
  • =が割り当てであるjQueryオブジェクトにあなたの変数をラップしてはならない、==または===は比較
です

さらに、条件内に.text()関数の周りに余分なカッコがあります。

$('#jquery-toggle')$(this)に変更することができます。thisは、イベントハンドラが呼び出された要素を指します。

コードは次のようになります

$('#jquery-toggle').click(function() { 

     var buttontext = $(this).text(); 

     if (buttontext === 'Toggled') { 
      $(this).text('Not Toggled'); 
     } else { 
      $(this).text('Toggled'); 
     } 
    }); 
+0

ありがとうあなたは非常にmuc h :) – dvglsk

+0

'$(this) 'を変換しませんでした – charlietfl

+0

@charlietflああ、その1つ、ありがとうございました – empiric

1

あなたの主な問題は、2つのか代入演算子である単一の等号、(変数に値を代入)しない比較演算子(チェックであります要素は等しい)、これはあなたが後にしていることです。

次は動作するはずです:あなたはidてドキュメントを検索する計算を節約も

$('#jquery-toggle').click(function() { 

    var buttontext = $(this).text(); 

    if (buttontext == 'Toggled') { 

     $(this).text('Not Toggled'); 

    } else { 
     $(this).text('Toggled'); 
    } 
}); 

thisの使用を、。

+0

ありがとう@gozzilli –

1

あなたif()はそれで$()を持っており、比較演算子を使用する必要があるべきではない、ない=

text(function)

トグル($(buttontext =」場合
$('#jquery-toggle').click(function() { 
    // "this" is the element 
    $(this).text(function(_, existingText){ 
     return existingText === 'Toggled' ? 'Not Toggled' : 'Toggled'; 
    });  
}); 
関連する問題