JavaScript错误,之后缺少名称.操作者

0xh*_*hes 6 javascript

我试图获得隐藏跨度的innerHTML.JavaScript来自iframe HTML页面,隐藏的跨度位于父页面中.当从父母访问列表的内容时,一个不同的功能工作,但我似乎无法达到我的范围......

作品

document.getElementById(parent.genL[i]);
Run Code Online (Sandbox Code Playgroud)

没有工作

document.getElementById(parent."span"+i).innerHTML;
- SyntaxError: missing name after . operator
Run Code Online (Sandbox Code Playgroud)

上面的代码行驻留在for循环中,当它遍历i时,它将从每个单独的span中获取数据.隐藏的跨度从ID"span1"开始,通过10-40k个不同的隐藏跨度.

无论如何,我有一种感觉,它必须做一些尝试连接字符串int i.无论如何我认为我是一个int.有什么想法吗?非常感谢大家!

编辑 - 单词,并将innerHTML部分添加到不起作用的代码行.不确定这是否会有所作为......

Edit2 - 伟大的答案每个人,学习了一些很好的语法技巧:)我只是移动了父母.按照mplungjan的评论和Jacob T. Nielson的回答推荐代码前面的部分.出于某种原因,我仍然使用建议的括号来解决错误,但我肯定会将括号放入我的记忆中以备将来类似的情况使用!

parent.document.getElementById("span"+i).innerHTML;
Run Code Online (Sandbox Code Playgroud)

:)

Dan*_*ite 6

尝试将其更改为索引器.

document.getElementById(parent["span"+i]);
Run Code Online (Sandbox Code Playgroud)

  • 或者也许是parent.document.getElementById("span"+ i); (3认同)

Tro*_*sic 6

如果parent括号中的对象是您正在尝试访问的东西,parent.span1那么您需要使用括号表示法而不是点.

document.getElementById(parent["span"+i]); 应该工作正常.


Jac*_*sen 5

我想你要做的是在父页面上获得第i个span元素.正确?

你可以这样做

var s = parent.document.getElementsByTagName('span')[i];
s.innerHTML // <-- access innerHTML
Run Code Online (Sandbox Code Playgroud)