在Javascript中使用带有点/句点的HTML ID

时间:2017-08-07 16:13:37

标签: javascript jquery html

我有输入表格,例如

<input type="checkbox" id="a.b">

每当我使用console.log() javascript函数点击它时,我想打印它的值。

<input type="checkbox" id="a.b" onclick="console.log(a.b.value)">

显然,Javascript抱怨a是未定义的,并且值的属性b不存在。我发现这样做的唯一方法是使用_而不是a重命名我的字段。 (期)。我最终得到了

<input type="checkbox" id="a_b" onclick="console.log(a_b.value)">

有更好的方法吗?我可以在标识符中转义点吗?我知道。是Javascript标识符中的无效字符,但它不是HTML格式。我可以使用jquery来解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

Javascript使用.表示法来使用对象。而且你只能在使用String时逃脱。所以答案是否定的。

为什么不使用this

&#13;
&#13;
<input type="checkbox" id="a.b" onclick="console.log(this.value)">
&#13;
&#13;
&#13;

如果您正在使用它,那很好,但正如有人已在评论中指出的那样,请勿使用内联事件。而是在元素上添加事件

&#13;
&#13;
  var checkbox = document.getElementById("a.b");
    checkbox.onchange = function() {
    if(this.checked) {
        console.log("checked");
      } else {
        console.log("un checked");
      }
    }
&#13;
<input type="checkbox" id="a.b">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以通过执行console.log(window["a.b"].value)来访问它。我不建议这样做,因为直接访问元素不是最佳做法,但它会做你要求的。