从类名中提取文本

时间:2014-06-17 09:28:43

标签: javascript jquery jquery-selectors

我正在尝试编写一个函数,该函数将扫描包含“* -chars”作为类的一系列元素。一旦我找到了我想要获取特定类的元素(例如max-chars)并在 - 之前提取类的一部分。我不能使用简单的拆分,因为元素可以包含其他包含 - 或偶数-chars的类。

到目前为止,我已经完成了以下工作:

var getLimitType = function (el) {
    var output = el.find('*[class*="-chars"]').filter(function () {
         return this.className.match(/(?:^|\s)-chars/);
    });

    var limitType = output.val().split("-").shift();
    var getVal = el.find('input').attr('maxlength');
    return limitType+'_'+getVal;
};

显然这不起作用,因为limitType试图对jQuery对象而不是字符串执行拆分,但是我无法弄清楚要放在空白行中的内容,我需要一些能够占用所有类的东西从该对象中找出我正在寻找的那个,并将其中的一个作为文本字符串返回。

1 个答案:

答案 0 :(得分:0)

从来没有找到一个理想的答案,但是我设法解决了我的问题:

var getLimitType = function (element) {
    var ml = element.find('input').attr('maxlength');
    if (element.hasClass('exact-chars')) {
        return 'exact_'+ml;
    } else if (element.hasClass('min-chars')) {
        return 'min_'+ml;
    } else if (element.hasClass('max-chars')) {
        return 'max_'+ml;
    } else {
        return 0;
    }
};