我正在尝试使用 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.writeln
或document.write
,原因是调用此函数将清除整个文档并将其替换为传入的任何字符串。
查看example .
关于javascript - 如何调用 "document.getElementBytag()"创建的数组中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5688670/