如何在JavaScript中转义DOM名称?

时间:2020-03-06 14:57:08  来源:igfitidea点击:

我有一个要通过javascript处理的表单元素,但它不喜欢语法。

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

我想能够说:

document.mycache.cache[m][2]

但是显然我需要指出" cache [m] [2]"是全名,而不是对" cache"的数组引用。能做到吗

解决方案

更新:实际上,我错了,我们可以将[或者]字符用作表单元素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>

更新:我们还可以使用以下内容从form元素获取值:

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

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

请改用document.getElementsByName(" input_name")。也跨平台。赢。

-并且在过去(在HTML3.2 / 4.01过渡/XHTML1.0过渡DOM绑定中),我们可以使用:

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

-但是元素-就像Chris Pietschmann所示,不是必需的,因为这些绑定方案还允许直接访问(尽管我个人更喜欢额外的可读性!-)