Javascript jquery可以';似乎没有在回调函数中选择dom元素

Javascript jquery可以';似乎没有在回调函数中选择dom元素,javascript,jquery,html,Javascript,Jquery,Html,我在尝试使用Jquery在回调函数中选择DOM元素时遇到了一个问题,我总是得到未定义的值,请注意,键变量没有问题,唯一的问题是Jquery似乎无法选择输入元素并获取其值 $(".mybutton").on('click', function(){ var key = $(this).attr('key'); __CANVAS.mousemove(function(evt){ var mousePos = getMousePos(__CANVAS2, evt);

我在尝试使用Jquery在回调函数中选择DOM元素时遇到了一个问题,我总是得到未定义的值,请注意,键变量没有问题,唯一的问题是Jquery似乎无法选择输入元素并获取其值

 $(".mybutton").on('click', function(){
     var key = $(this).attr('key');
     __CANVAS.mousemove(function(evt){
       var mousePos = getMousePos(__CANVAS2, evt);
       $("#x[" + key + "]").val(); // undefined
       $("#y[" + key + "]").val(); // undefined
   });
});
这是html

 <input id="x['.$key.']" name="x'.$key.'" type="text"  value="x'.$key.'" width="50px">
                                     x
 <input id="y['.$key.']" name="y'.$key.'" type="text"  value="y'.$key.'" width="50px">
                                     y
 <button type="button" key="'.$key.'" class="mybutton">Create/Edit</button>

x
Y
创建/编辑

提前感谢。

这不是有效的
id
属性(不允许使用括号)。规格:此外,括号是jQuery选择器中的特殊字符,因此您的选择器不会被视为文本字符串。您可以将括号转义,这样字符串就可以按字面意思处理了。不过,作为旁注:在单击处理程序中附加事件侦听器是个坏主意,因为这样会累积事件处理程序。@RobM。HTML5放宽了id上的字符限制。当您将其值赋给
$(this.attr('key')
)后,您得到了什么?Rob M。我将id更改为
id=“x”。$key.”“
,但仍然存在未定义的相同问题,