你能幫我用普通的JavaScript以最有效的方式編寫這個函數嗎?如何在純JavaScript中編寫這個JQuery函數?
//Selects all elements matched by <input> that have a name value
//exactly equal to myname.
$("input[@name=myname]")
你能幫我用普通的JavaScript以最有效的方式編寫這個函數嗎?如何在純JavaScript中編寫這個JQuery函數?
//Selects all elements matched by <input> that have a name value
//exactly equal to myname.
$("input[@name=myname]")
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);
假設在表單中每個元素都有唯一的名稱,這個方法是最快的:
var element = document.MyForm.getElementsByName('myname')[0];
document.querySelectorAll()
可能會更快如果name
由不同標籤的元素共享,但是support is limited。
是不是真的有一個「有效」的方式在Javascript比使用jQuery是使用完全相同的方法等來做到這一點。 jQuery在使這些選擇器非常高效方面做了很多工作。有沒有理由不能使用jQuery,或者這只是一個學術練習? – Codeman
不,這不是一項學術活動,我在我的程序中使用JavaScript,並且每次加載頁面時評估JQuery都不是很好.. – Vor
好嗎?但是很多現有的網站都這樣做 - 成功;甚至是stackoverflow。 –