jquery - 使用||在 Jquery 比较中

标签 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')

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

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

感谢任何帮助

谢谢

最佳答案

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')

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

关于jquery - 使用||在 Jquery 比较中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17230490/

相关文章:

javascript - 如何使图像功能类似于文件输入字段的 "browse"按钮?

javascript - 将元素文本复制到剪贴板 aspx

jquery - 有谁知道一个好的 jQuery 内容 slider 可以根据内容自动调整包含的 div 的高度?

jquery - 需要一个jQuery日历插件,具体日期

javascript - livequery 用于检测 dom 变化

带有 Ajax 回调的 Javascript 模块模式

javascript - 离开网站通知

javascript - 将其绑定(bind)为我在 ajax 成功回调中单击的复选框

jQuery Ajax 调用 Uri 中的转义字符

Jquery 文本框和文本区域内的淡出文本