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

时间:2015-02-25 12:00:01

标签: javascript html getelementbyid getelementsbytagname getelementsbyclassname

我想要计算具有文本类名称的输入字段的出现次数,其中该文本输入包含特定值。

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

到目前为止,这会计算所有类型名为 text 的文本框,但是我如何才能使其具有特定价值,例如,如果我有50个文本框,但我只想计算那些值为textbox 在字符串中的某处包含 abc

感谢。

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

4 个答案:

答案 0 :(得分:2)

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

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

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

上面的代码将生成文本元素数组,其中value包含子字符串“abc”。

答案 1 :(得分:1)

您好我认为您需要查看此SO帖子 -

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

您需要使用指定的类循环遍历所有文本框并从那里进行计算。

以下逻辑应该有效:

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