为多元素javascript设置默认值

为多元素javascript设置默认值,javascript,html,Javascript,Html,我正在尝试使用javascript设置DOM元素的默认值。 首先,我需要检查字段值是否为空。如果是,则将该值更改为0。 如果不是,那就什么也不做 文本字段: 而且,据我所知,必须使用一些循环,但我不知道如何实现这一点。有人能帮我吗?这个想法是正确的,但是你错过了实际的循环。它可能看起来像这样 var feature_value = document.getElementsByName("feature_values_" + "/^\d+$/").value; if(feature_value !

我正在尝试使用javascript设置DOM元素的默认值。 首先,我需要检查字段值是否为空。如果是,则将该值更改为0。 如果不是,那就什么也不做

文本字段:


而且,据我所知,必须使用一些循环,但我不知道如何实现这一点。有人能帮我吗?

这个想法是正确的,但是你错过了实际的循环。它可能看起来像这样

var feature_value = document.getElementsByName("feature_values_" + "/^\d+$/").value;
if(feature_value !== ""){
    change the default values
}
for (var i = 0; i < feature_value.length; i++)
    if (feature_value[i].value === "")
        feature_value[i].value = "0";

这个想法是正确的,但是你错过了实际的循环。它可能看起来像这样

var feature_value = document.getElementsByName("feature_values_" + "/^\d+$/").value;
if(feature_value !== ""){
    change the default values
}
for (var i = 0; i < feature_value.length; i++)
    if (feature_value[i].value === "")
        feature_value[i].value = "0";

正则表达式没有匹配项

最好的解决方案是使用公共类名并在集合上循环

var elems = document.getElementsByClassName("commonClass");
另一个选项是使用以匹配开头的querySelectorAll

var elems = document.querySelectorAll("[name^='feature_value_']");
循环

var i;
for (i=0; i<elems.length; i++) {
   if (!elems[i].value.length) {   //you might want to trim this 
       elems[i].value = "0";
   }
}
参考资料:

编辑、添加可运行的代码段:

var elems=document.querySelectorAll[name^='feature\u value']; var i;
对于i=0;i正则表达式不匹配

最好的解决方案是使用公共类名并在集合上循环

var elems = document.getElementsByClassName("commonClass");
另一个选项是使用以匹配开头的querySelectorAll

var elems = document.querySelectorAll("[name^='feature_value_']");
循环

var i;
for (i=0; i<elems.length; i++) {
   if (!elems[i].value.length) {   //you might want to trim this 
       elems[i].value = "0";
   }
}
参考资料:

编辑、添加可运行的代码段:

var elems=document.querySelectorAll[name^='feature\u value']; var i;
对于i=0;我建议使用“==”,因为==0是真实的答案没有提到第一个问题,即getElementsByName是错误的。只回答了一半的问题。我建议使用“==”,因为==0是trueAnswer没有提到getElementsByName错误的第一个问题。只回答了一半的问题。我不知道我做错了什么,但它不会改变任何控制台。日志写入长度:0Ah,我复制了上面名称错误的代码。实际名称中没有s。它仍然显示我使用的var elems=document.querySelectorAll[name^='feature\u value_']的长度0;代码对我来说运行良好,只是用更新来显示它正在运行。您正在尝试在元素加载到页面之前访问它们,或者名称错误。是!你是对的!!页面加载之前执行的脚本。非常感谢您的帮助我不知道我做错了什么,但它不会改变任何控制台。日志写入长度:0Ah,我复制了您的代码,上面的代码名称错误。实际名称中没有s。它仍然显示我使用的var elems=document.querySelectorAll[name^='feature\u value_']的长度0;代码对我来说运行良好,只是用更新来显示它正在运行。您正在尝试在元素加载到页面之前访问它们,或者名称错误。是!你是对的!!页面加载之前执行的脚本。非常感谢你的帮助