gpt4 book ai didi

javascript - 这个功能可以更快吗? Javascript

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:38:36 25 4
gpt4 key购买 nike

我有一个函数可以获取 div 中的 DOM 元素数组(基于标签)。

Pseudocode:
1. Say I wanted to get all input and textarea elements within a table myTbl
2. Declare resultingArray = null
3. For each tag (ex: input, textarea)
4. tagArray = Get all elements based on tag
5. Create another array by manually looping through tagArray and adding
it to resultingArray (the return type is dynamic collection and not an array.

从功能上讲,它可以工作,但耗时太长。有没有办法更快地完成我想做的事情?

最佳答案

基于 Ben 的 elements idea ,这是另一个带有非嵌套循环的镜头。

var tagNames = { 'SELECT' : true, 'INPUT' : true, 'TEXTAREA' : true }; //use an object for faster lookups
var rawElemsArray = document.getElementById("form-name").elements;
var elems = [];
for (var i = rawElemsArray.length - 1; i >= 0; i--) {
if (tagNames[rawElemsArray[i].tagName]) {
elems.push(rawElemsArray[i]);
}
}

编辑:form.elements 是在 0 级 DOM 中定义的,所以我敢打赌它是跨浏览器的。如果满足您的目的,您还可以使用 childNodes(这也是跨浏览器的)。它们之间的区别在于 childNodes 选择所有节点(div、p、span 等)以及空文本节点(在非 IE 浏览器中),而 elements 仅返回表单控制。

关于javascript - 这个功能可以更快吗? Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1413192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com