有没有办法使用javascript在特定页面上获取所有按钮标记及其类型?
答案 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]");
示例:
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;
答案 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)