Javascript-目标DOM在一种情况下工作,而不是在另一种情况下工作

Javascript-目标DOM在一种情况下工作,而不是在另一种情况下工作,javascript,Javascript,我有一个javascript,当按下Ctrl+Enter时,它将调用CtrlEntInsertData(): 我有一个错误: TypeError:null不是对象(正在计算“target.setAttribute”) 但是当我使用它来getPosition()时,它确实返回了一些东西。这是为什么?如何使其工作?此选择器 document.querySelector("input"); 查找标记输入的第一个元素 如果要按类输入选择元素,则需要使用 document.querySelector("

我有一个
javascript
,当按下
Ctrl
+
Enter
时,它将调用
CtrlEntInsertData()

我有一个错误:

TypeError:null不是对象(正在计算“target.setAttribute”)

但是当我使用它来
getPosition()
时,它确实返回了一些东西。这是为什么?如何使其工作?

此选择器

document.querySelector("input");
查找标记
输入的第一个元素

如果要按类
输入选择元素,则需要使用

document.querySelector(".input");
请参阅。

这是工作代码。 虽然我使用了selectByClassName,但您应该准确地选择元素。我建议您使用selectById

function CtrlEntInsertData() {
var target = document.getElementsByClassName("input")[0];//selects first element of this class
var tarpos = getPosition(target);    
target.setAttribute('data', 10);    
console.log(tarpos.x+" "+tarpos.y);  
   console.log(target);              
}

它应该是
document.querySelector(“.input”)如果要按类查询它
querySelector(“input”)
代表
input
标记,如
。要基于Yeldar的注释,如果您确实想搜索标记名(如input),可以使用getElementByTagName。
document.querySelector(".input");
function CtrlEntInsertData() {
var target = document.getElementsByClassName("input")[0];//selects first element of this class
var tarpos = getPosition(target);    
target.setAttribute('data', 10);    
console.log(tarpos.x+" "+tarpos.y);  
   console.log(target);              
}