javascript - 如何调用 "document.getElementBytag()"创建的数组中的元素?

标签 javascript arrays mootools getelementsbytagname

我正在尝试使用 mootools 框架为我的网站创建一个页面。我已经到处寻找我能想到的关于为什么这不起作用的答案,但一无所获。

我想用 html 中的不同数据类型填充多个数组,然后通过索引号调用每个数组中的元素,动态链接和控制函数内的这些元素。我正在 mootools jsfiddle 实用程序中测试下面的简单代码片段。尝试调用数组“region”中的元素直接返回“undefined”,尝试返回元素的索引号返回空值“-1”。

我无法从此数组中获取有用的数据。我可以想到三个可能的原因,但无法弄清楚如何确定这里到底发生了什么: 1. 也许该数组根本没有填充任何数据。 2. 也许正在填充,但我误解了“document.getElementBytag()”获取的数据类型,因此无法使用“document.writeln()”语句显示数据。 (或者我被迫盲目地创建我的所有数组?) 3. 也许问题在于以这种方式创建的数组没有索引。 (或者我可以做些什么来索引这个数组?)

html:
<div>Florida Virginia</div>
<div>California Nevada</div>
<div>Ohio Indiana</div>
<div>New York Massachussetts</div>
<div>Oregon Washington</div>

js:
var region = $$('div');
document.writeln(region[2]);
document.writeln(region.indexOf('Ohio Indiana'));

感谢您帮助 js 新手弄清楚这个数组的内部发生了什么。

最佳答案

$$ 将返回 DOM 元素列表。如果您只对这些 DOM 节点的文本感兴趣,那么首先提取该位。正如 @Dimitar 在评论中指出的那样,在 Elements 对象上调用 get 将可能通过迭代集合中的每个元素并获取相关属性来返回一个数组。

var region = $$('div').get('text');

console.log(region[2]);                      // Ohio Indiana
console.log(region.indexOf('Ohio Indiana')); // 2

还可以使用console.log代替document.writelndocument.write,原因是调用此函数将清除整个文档并将其替换为传入的任何字符串。

查看example .

关于javascript - 如何调用 "document.getElementBytag()"创建的数组中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688670/

相关文章:

javascript - 是否可以从 JavaScript 中的 "inner"范围获取值?

javascript - D3.js HTML 列表和子列表上的嵌套数据连接

python - numpy 掩码数组的奇怪行为

javascript - 当 alpha 透明时,HTML5 Canvas 到 PNG 将所有 channel 归零

javascript - 在浏览器中修改XML文档

Python - 二维数组内计数 - OpenCV

python - 如何使用append()函数扩展Numpy数组类?

javascript - mootools 中的 "read more"链接

javascript - 使用bumpbox、mootools.js实现pdf lightbox并确保用户滚动到文档末尾

javascript - 如果需要,删除 CSS 选择器及其相关属性