1

你能帮我以最有效的方式用纯 JavaScript 编写这个函数吗?

//Selects all elements matched by <input> that have a name value 
//exactly equal to myname.
$("input[@name=myname]") 
4

3 回答 3

5
var els = document.getElementsByTagName("input"),
    arr = [];

for (var i = 0, l = els.length; i < l; i++) {
    if (els.name === "myname") {
        arr.push(els);
    }
}

console.log(arr);

或者对于现代浏览器:

var arr = document.querySelectorAll("input[name='myname']");
console.log(arr);
于 2013-01-12T00:55:27.983 回答
4

这是你想要的:

document.getElementsByName("myname");
于 2013-01-12T00:58:25.063 回答
3

假设表单中的每个元素都有一个唯一的名称,这种方法是最快的:

var element = document.MyForm.getElementsByName('myname')[0];

document.querySelectorAll()name如果由不同标签的元素共享可能会更快,但支持有限

于 2013-01-12T00:56:01.150 回答