如何在javascript中转义DOM名称?

时间:2008-09-30 22:42:13

标签: javascript

我有一个表单元素,我想通过javascript解决,但它不喜欢语法。

<form name="mycache">
  <input type="hidden" name="cache[m][2]">
  <!-- ... -->
</form>

我希望能够说:

document.mycache.cache[m][2]

但显然我需要指出cache[m][2]是全名,而不是cache的数组引用。可以吗?

4 个答案:

答案 0 :(得分:3)

更新:实际上,我错了,你可以使用[或]字符作为表单元素id和/或name属性的一部分。

以下是一些证明它的代码:

<html>
<body>

<form id="form1">

<input type='test' id='field[m][2]' name='field[m][2]' value='Chris'/>

<input type='button' value='Test' onclick='showtest();'/>

<script type="text/javascript">
function showtest() {
    var value = document.getElementById("field[m][2]").value;
    alert(value);
}
</script>

</form>

</body>
</html>

更新:您还可以使用以下命令从表单元素中获取值:

var value = document.forms.form1["field[m][2]"].value;

答案 1 :(得分:2)

请改用document.getElementsByName("input_name")。跨平台也是。取胜。

答案 2 :(得分:1)

是否可以向表单元素添加id引用并使用document.getElementById?

答案 3 :(得分:1)

- 在过去(在HTML3.2 / 4.01过渡/ XHTML1.0过渡DOM绑定中)你可以使用:

form.elements["cache[m][2]"]

- 但正如Chris Pietschmann所示,这些元素的东西没有必要,因为这些绑定方案也允许直接访问(虽然我个人更喜欢额外的可读性! - )