javascript 获取元素,其中值包含特定字符串

javascript getelement where value contains specific string

我想计算具有 class 文本名称且该文本输入包含特定值的输入字段的出现次数。

document.getElementById('c_files').getElementsByClassName('text').length;

到目前为止,这计算了所有 class 名称为 text 的文本框,但我如何才能使它的值特定,比如我有 50 个文本框,但我只想要计算文本框的值 contains abc 在字符串中的某处。

谢谢。

编辑: 谢谢大家的宝贵时间和回答,我已经给你们投了赞成票,但我更喜欢 John Bupit 的解决方案,所以我会接受.再次感谢。

您好,我认为您需要查看此 SO post-


这有助于您获得解决方案。

您可以遍历元素并查看哪些元素具有所需的值:

var elems = document.getElementById('c_files').getElementsByClassName('text');

var count = 0;
for(var i = 0; i < elems.length; i++) {
    if(elems[i].value.match(/abc/)) count++;
}

您需要遍历具有指定 class 的所有文本框并从那里计算它。

类似以下逻辑的东西应该可以工作:

var counter = 0;
var inputElements = document.getElementById('c_files').getElementsByClassName('text').length;
for (var i = 0; i < inputElements.length; i++) {
    if (inputElements.value == "someText") {
        counter++;
    }
}

您可以先 select 所有文本框,然后筛选符合您条件的文本框。例如,通过使用 Array.prototype.filter 方法:

var allText  = document.getElementById('c_files').getElementsByClassName('text'),

    filtered = [].filter.call(allText, function(textbox) {
        return textbox.value.indexOf('abc') > -1;
    });

以上代码将生成文本元素数组,其中值包含子字符串 "abc"。