javascript getelement,其中value包含特定字符串

javascript getelement where value contains specific string

本文关键字:包含特 字符串 value 其中 getelement javascript      更新时间:2024-05-03

我想统计类名为text的输入字段的出现次数,其中该文本输入包含特定值。

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

到目前为止,它统计了类名为text的所有文本框,但我如何使其特定于值,比如说,如果我有50个文本框,但是我只想统计字符串中该文本框的值abc包含的文本框。

谢谢。

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

您可以迭代元素并查看哪些元素具有所需值:

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++;
}

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

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

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

嗨,我想你需要复习一下这个SO帖子-

https://stackoverflow.com/a/9558906/3748701
https://stackoverflow.com/a/10095064/3748701

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

您需要使用指定的类在所有文本框上循环,并从中计算它。

以下逻辑应该起作用:

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++;
    }
}