将其合并为一个if语句的正确方法是什么?

$('span').filter(function() {

    var myEl = $(this);
    var myText = myEl.text();

        if (myText.match('foo')) {
            $(myEl).addClass('foo');
        }

        if (myText.match('bar')) {
            $(myEl).addClass('bar');
        }

        if (myText.match('baz')) {
            $(myEl).addClass('baz');
        }

  });

最佳答案

您可以这样做,例如:

['foo', 'bar', 'baz'].forEach(function(v){
   if (myText.match(v)) myEl.addClass(v);
});


或者,如果您想与IE8兼容(还没有forEach):

$.each(['foo', 'bar', 'baz'], function(_, v){
   if (myText.match(v)) myEl.addClass(v);
});


请注意,我用$(myEl)替换了myEl,因为myEl已经是一个jQuery对象。

关于jquery - 合并jQuery中的重复if函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16366209/

10-12 06:17