1

好像我不能用|| 在我的 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')]);
    });
});

因此,一个简单的函数将获取我悬停的文本并将其与我给它的字符串进行比较,具体取决于给定的字符串,它将在悬停时输出不同的字符串。我跌倒的地方(你可能会看到更多,也许一些重构会更有效)正在合并多个刺痛

所以当我尝试这个时

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

该功能将失败,并且所有悬停状态都有文本新手显示。

我如何与此语句中的多个字符串进行比较,如果有人对重构有任何提示,请分享。

任何帮助表示赞赏

谢谢

4

3 回答 3

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)
于 2013-06-21T08:13:30.457 回答
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') 
{

}
于 2013-06-21T08:13:32.697 回答
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')

不要重复自己总是一个更好的主意。并尽可能使用=====因为前者比后者表现更好。

于 2013-06-21T08:13:41.320 回答