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

文字栏位:

<input class="field" type="text" name="feature_value_1" value="" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_2" value="1" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_3" value="" size="50" style="width: 350px;">


字段数始终在变化。

我正在尝试做这样的事情

var feature_value = document.getElementsByName("feature_values_" + "/^\d+$/").value;
if(feature_value !== ""){
    change the default values
}


而且,据我了解,必须使用一些循环,但是我不知道如何实现此循环。谁能帮我?

最佳答案

正则表达式不匹配。

最好的解决方案是使用通用的className并遍历集合。

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


参考文献:


MDN getElementsByClassName()
MDN 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";
   }
}

<input class="field" type="text" name="feature_value_1" value="" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_2" value="1" size="50" style="width: 350px;">
<input class="field" type="text" name="feature_value_3" value="" size="50" style="width: 350px;"> 

09-16 16:56