2015-12-14 64 views
3

我已经创建了样式重置作为表单验证的第一部分。我必须清除两种类型的元素:输入和选择。我可以在变量上存储两种元素吗?因此,inputs var存储输入和选择对象。在变量上存储几个元素

var inputs = document.getElementsByTagName("input"); 
    var totalInputs= inputs .length; 

    for (var i = 0; i < totalInputs; i++){ 
     inputs[i].removeAttribute("style");; 
    } 

回答

3

只能使用querySelectorAll,您可以在单个变量中存储多个元素。但不能使用getElementsByTagName

在这里你可以同时存储inputselect对象通过,

var inputs = document.querySelectorAll("input,select"); 

检查这个例子:

$(function() { 
 
    $("button").click(function() { 
 
    var inputs = document.querySelectorAll("input,select"); 
 
    var totalInputs = inputs.length; 
 
    for (var i = 0; i < totalInputs; i++) { 
 
     inputs[i].removeAttribute("style");; 
 
    } 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<input type="text" style="background:#b6ff00" /> 
 
<select style="background:#b6ff00"> 
 
    <option>Option 1</option> 
 
    <option>Option 2</option> 
 
</select> 
 
<button>Remove</button>

希望这有助于

+0

非常感谢。完美的作品。 – Biomehanika

+0

我很高兴它有帮助! –

0

getElementsByTagName返回节点列表。我建议使用querySelectorAll来获取输入和选择元素。

var inputs = document.querySelectorAll("input,select")); 
var totalInputs = inputs.length; 

for (var i = 0; i < totalInputs; i++){ 
    inputs[i].removeAttribute("style");; 
} 
+0

'.concat'是一个数组方法,而y你有一个NodeList。 – Scimonster

+0

我明白了,谢谢。但由于某种原因,你的代码会导致应用程序无法进行提交,这会导致一些错误(不是后面(“style”)后面的双点逗号); – Biomehanika

+0

@Scimonster是的,我刚刚意识到这一点,我将更新。 –

相关问题