0

我需要创建一个脚本,该脚本将根据关键字列表过滤掉内容(如果内容包含这些关键字之一,我想对其应用样式)。

到目前为止,我有这个代码:

jQuery.expr[':'].mcontains = function(obj, index, meta, stack){
    result = false;     
    theList = meta[3].split("','");

    var contents = (obj.textContent || obj.innerText || jQuery(obj).text() || '')

    for (x=0;x<theList.length;x++) {
        if (contents.toLowerCase().indexOf(theList[x].toLowerCase()) >= 0) {
            return true;
        }
    }

    return false;
};

$("div:mcontains('facer','non')").css("background","red")

我自己没有写这个,我在网上找到了它,但我让它工作得很好,就像我在小提琴中需要的那样:http: //jsfiddle.net/jtmVf/1/

但是,当我尝试将其移植到项目中时,我在 firebug 中收到此错误:

TypeError: meta is undefined

在这条线上:

theList = meta[3].split("','");

我不确定为什么它在那里未定义,但没有在小提琴上抛出错误?没有冲突(我删除了除 jquery.min 之外的所有其他 js 以查看是否是问题所在)。

我希望这里有人能够看到我缺少的东西,这个脚本有什么问题?

4

1 回答 1

0

在您分配“元”数组内容的位置发布您的代码。因为这些类型的错误通常会在数组中没有这样的索引时显示

于 2012-10-25T16:48:59.507 回答