2016-05-16 6 views
3

で2つの文字列を比較することはできません:は、私は頭のテキストに基づいて異なる値を返す必要があり、以下の機能を、持っているJavaScriptの

function getPage(){ 
    var page; 
    var headText = $.trim($('h1').text()); 

if(headText=="Page 1"){ 
    page= 'a'; 
}else if(headText=="Page 2"){ 
    page= 'b'; 
}else if(headText=="Page 3"){ 
    page ='c'; 
}else if(headText=="Page 4"){ 
    page= 'd'; 
}else{ 
    page= 'ERROR'; 
} 

return page; 
} 

は残念ながら、関数は「ERROR」を返します。私はトリム方法なしでそれを試してみました。私は自分の変数にPage 1 - Page 4を書き、if()セクションに2つの変数を比較してみました。何も動作しません。私のエラーはどこですか? (私は< h1>要素のテキストが「ページ1」、「ページ2」、「ページ3」または「ページ4」であると確信しています)

+3

* "< h1> - 要素のテキストは..."とは確信しています* –

+1

「headText」に期待する値が含まれているかどうかをチェックすることから始めます。 – Sirko

+1

これを解決する最も簡単な方法は、そこに 'console.log'を投げて、入力があなたの期待とどのように違うのかを見てみることです(一言で言えばデバッグです。 –

答えて

1

まず、console.log(headText);あなたが実際に何を得ているかを確認してください。

あなたはh1の子のテキストがh1のテキストに追加取得することができる - 、マッチした要素の集合の各要素の組み合わせテキストの内容を取得し、具体的

http://api.jquery.com/text/を参照してくださいその子孫を含む。 [強調する]

その場合は、this question and answerを参照してください。

1

h1が1つのみタグをあなたのページに表示します。複数のh1タグがある場合、それらのテキストはheadTextで連結されます。

h1タグをid属性で一意に識別して、そのタグのテキストのみを取得する必要があります。

+0

それは正しいですが、なぜ動作しないのか説明しません: '私は自分自身の変数にページ1 - ページ4を書き込んで試しました。変数 ' –

+0

もちろんです。 $( 'h1')はすべてのh1タグを選択し、$( 'h1')を呼び出すと動作しません。text()それらのテキストはすべて連結されています。参照してください:https://plnkr.co/edit/vOYnZohkjTEu4q634JUV – ethan

+0

しかし、OPは、彼はそれを変数でテキストを設定してテストし、まだ動作しないと述べた。だから明らかに問題はどこかにある –

関連する問題