对li列表相同的项进行标红

假定一个dom结构是一个id为foo的容器ul下有多个li的列表,在li中有一个输入框。

当输入框输入事件触发的时候调用equalHighlight,unitList_new是传入的当前列表的对象数组(列表通过unitList_new渲染出来,并确保unitList_new与li中的数据顺序一致):

(function(w){
       w.equalHighlight = function (unitList_new) {
          $("#foo > li").removeClass("red");
          for (var j = 0; j < unitList_new.length; j++) {
            for (var k = j + 1; k < unitList_new.length; k++) {
              if (
                unitList_new[j].sort === unitList_new[k].sort &&
                unitList_new[k].sort !== ""
              ) {
                if (!$("#foo > li").eq(k).hasClass("red")) {
                  $("#foo > li").eq(k).addClass("red");
                }
                if (!$("#foo > li").eq(j).hasClass("red")) {
                  $("#foo > li").eq(j).addClass("red");
                }
              }
            }
          }
        };
      })(window)

逐个比对数组的sort值是否相同并给对应的li加红色class:

  .red{
    color: red;
      }
  .red input{
      color: red;
    }

你可能感兴趣的:(前端)