JS如何调用名称含有特殊字符的对象?

cokyrain 2012-02-18 09:12:48
比如<input type="text" name="o.[p&q]" ID="o.[p&q]">

对象名含有特殊字符,正常情况下能用的document.all.name、document.getElementById(id)、document.getElementByName(name),这些都不能用了,

求教各位高人,应该怎么调用?
...全文
683 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzhaoxinxinx 2012-02-21
  • 打赏
  • 举报
回复
从本质上说,每个对象的属性都是可以遍历到的,比如一个input的value,name都可以用像数组下标的方式获得,我们通常使用:
document.getElementById("input1").value,当然也可以遍历document.getElementById("input1"),找到value,而不用“value”这个名字索引。
每个页面上定义的变量或对象也是window或document的属性,或者是属性的属性,也就是说,我有一个“o.[p&q]”对象,它肯定是window或document的属性,楼主仔细想一想,试一试就会发现,只要他在那里,可以用遍历对象属性的方式获取属相对象也好,用数字下标而不是文字所以也好,肯定是可以获取的到的。对不对?呵呵
cokyrain 2012-02-18
  • 打赏
  • 举报
回复
抱歉,是我写错了
<form>
<input type="text" name="o.[p&q]" id="o.[p&q]"><br>
<input type="button" value="赋值" onclick='document.getElementById("o.[p&q]").value="1";'>
</form>

是可以的

cokyrain 2012-02-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wzs_xyz 的回复:]
如果是这样,那只能说明地址栏不能识别特殊字符,而不是js里面无法调用
[/Quote]

<form>
<input type="text" name="o.[p.q]" id="o.[p.q]"><br>
<input type="button" value="赋值" onclick='document.getElementById("o.[p&q]").value="1";'>
</form>


测试报错,不仅仅是地址栏的问题
cokyrain 2012-02-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiongxyt2 的回复:]
我记得JQuery中是在特殊字符前面加\\
document.getElementById("o\\.\\[p\\&q\\]").value
[/Quote]

依然不行
xiongxyt2 2012-02-18
  • 打赏
  • 举报
回复
我记得JQuery中是在特殊字符前面加\\
document.getElementById("o\\.\\[p\\&q\\]").value
未知数 2012-02-18
  • 打赏
  • 举报
回复
如果是这样,那只能说明地址栏不能识别特殊字符,而不是js里面无法调用
cokyrain 2012-02-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zzgzzg00 的回复:]
不明白你的意思啊 我document.getElementById("o.[p&q]").value;这样写可以取到值 你的意思??
[/Quote]

我测试无效啊!
你建一个html文件,内容如下
<form>
<input type="text" name="o.[p.q]" id="o.[p.q]">
</form>

用ie打开它,地址栏输入javascripe:document.getElementById("o.[p&q]").value='1';void 0;试下,看看会不会报错
似梦飞花 2012-02-18
  • 打赏
  • 举报
回复
不明白你的意思啊 我document.getElementById("o.[p&q]").value;这样写可以取到值 你的意思??

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧