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"。
我想计算具有 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"。