2013-06-21 60 views
1

似乎我不能使用||在我的Jquery腳本中進行一些比較。我至今是使用||在jquery比較

var originaltext = []; 
var novice = 'Novice' 
var intermediate = 'Intermediate' 
var expert = 'Expert' 

// Changes text on hover 
$(function() { 
    $('.skillsDouble li').hover(function(){ 
     originaltext[$(this).index('.skillsDouble li')] = $(this).text(); 

     if(originaltext[$(this).index('.skillsDouble li')] == 'Selenium') { 
     $(this).text(expert); 
     } 

     else if(originaltext[$(this).index('.skillsDouble li')] == 'CSS') { 
     $(this).text(intermediate); 
     } 

     else { 
     $(this).text(novice); 
     } 

    }, 
    function(){ 
     $(this).text(originaltext[$(this).index('.skillsDouble li')]); 
    }); 
}); 

因此,一個簡單的功能,將採取什麼樣的我上空盤旋的文本,並將其比作一個字符串我給它,這取決於字符串給它會輸出一個不同的字符串上徘徊。我在哪裏跌倒(您可能會看到更多的,也許有些重理更有效率)是comapring多刺

所以,當我嘗試這個

if(originaltext[$(this).index('.skillsDouble li')] == 'Selenium' || 'Jmeter') 

的功能將會失敗,所有懸停狀態有文字新手秀。

如何在本聲明中對多個字符串進行比較,如果有人對重新分解有任何提示,請分享。

任何幫助表示讚賞

感謝

+0

感謝所有的答案,澄清了一些事情對我來說,有很大的幫助 – Richlewis

回答

1
if(originaltext[$(this).index('.skillsDouble li')] == 'Selenium' || 'Jmeter') 

必須這樣寫

if(originaltext[$(this).index('.skillsDouble li')] == 'Selenium' 
    || originaltext[$(this).index('.skillsDouble li')] == 'Jmeter') 

或者更好

var original = originaltext[$(this).index('.skillsDouble li')]; 
if(original === 'Selenium' || original === 'Jmeter') 

始終是一個更好的主意,不要重複你小精靈。 並使用===而不是==,因爲前者表現比後者更好。

+0

啊我一直以爲==是比較,是什麼讓===更好? – Richlewis

+0

==將比較價值。 1 =='1'將成立。但'==='會在對象級別進行比較,意味着1 ==='1'將是錯誤的。但'==='更快,因爲不需要解析爲int或轉換爲字符串進行比較。 –

+0

很好的解釋,謝謝 – Richlewis

1

您可以糾正你的語句(也使用===代替==避免隱式轉換):

if(originaltext[$(this).index('.skillsDouble li')] === 'Selenium' || 
    originaltext[$(this).index('.skillsDouble li')] === 'Jmeter') 

還是這個,

var skills = originaltext[$(this).index('.skillsDouble li')]; 
if (skills === 'Selenium' || skills === 'Jmeter') 
{ 
} 

或者你可以使用數組並檢查對於數組中的字符串:

var strings = ["Selenium", "Jmeter"]; 
if(strings.indexOf(originaltext[$(this).index('.skillsDouble li')]) > -1) 
1

您需要:

if(originaltext[$(this).index('.skillsDouble li')] == 'Selenium' || originaltext[$(this).index('.skillsDouble li')] == 'Jmeter') 

我會建議存儲originaltext[$(this).index('.skillsDouble li')]到一個變量,然後比較,它使得它更具可讀性。

例如:

var skillsDouble = originaltext[$(this).index('.skillsDouble li')]; 

if (skillsDouble == 'Selenium' || skillsDouble == 'Jmeter') 
{ 

}