获取所有按钮标记类型

时间:2011-07-03 16:49:20

标签: javascript tags

有没有办法使用javascript在特定页面上获取所有按钮标记及其类型?

3 个答案:

答案 0 :(得分:17)

var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
    var button = buttons[i];
    var type = button.getAttribute('type') || 'submit'; // Submit is the default
    // ...
}

答案 1 :(得分:1)

我试着用原来的答案没有成功,所以我用这个:

var elements = document.querySelectorAll("input[type=button]");  

示例:

&#13;
&#13;
var elements = document.querySelectorAll("input[type=button]");   

for(var i = 0, len = elements.length; i < len; i++) {   
  console.log("Button: " +  elements[i].id);
}
 
&#13;
    <input type="button" id="alfa" value="alfa">
    <input type="button" id="beta" value="beta">
    <input type="button" id="gamma" value="gamma">
    <input type="button" id="omega" value="omega">
&#13;
&#13;
&#13;

答案 2 :(得分:0)

@jorgesys的答案指出,请使用:

document.getElementsByTagName("button");

这将返回一个HTMLCollection实例。在现代JavaScript中,您可以转换为数组并使用map

Array.from(document.getElementsByTagName("button"))
  .map(b => b.getAttribute('type'))

这将返回类似["submit", "submit", null, null, ...]"

的数组

我最近需要禁用所有按钮,可以使用forEach

Array.from(document.getElementsByTagName("button"))
  .forEach(b => b.disabled = true)

或者为避免使用临时数组(您可能不必担心此问题),可以创建以下代码:

function forEachButton(func) {
    let elements = document.getElementsByTagName("button");
    for(let i = 0, len = elements.length; i < len; i++) {
        func(elements[i])
    }
}

然后使用以下命令禁用所有按钮:

forEachButton(b => b.disabled = true)