JavaScript中对调用方元素的引用

JavaScript中对调用方元素的引用,javascript,Javascript,我想访问函数中的调用者元素,类似于: // Script <script type="text/javascript"> window.onload = function() { var field = document.getElementById("myfield"); field.onkeyup = change(field); function change(x) { if (x.value == "") { x.value

我想访问函数中的调用者元素,类似于:

// Script
<script type="text/javascript">

window.onload = function() {
   var field = document.getElementById("myfield");
   field.onkeyup = change(field);
   function change(x) {
      if (x.value == "") {
          x.value = "No value";
      }
   }
}

</script>


// Body
<input id="myfield" type="text">
//脚本
window.onload=函数(){
var字段=document.getElementById(“myfield”);
field.onkeyup=更改(字段);
功能改变(x){
如果(x.value==“”){
x、 value=“无值”;
}
}
}
//身体

这不管用。我不想给每个元素都提供onkeyup方法,我想以编程方式注册它们。有解决方案吗?

要访问触发事件的元素,可以执行此操作

element.onkeyup = function(e){
  var targetElement = e.target;
} 

值仅用于输入

var diva=document.getElementById(“mydiva”);
diva.onkeyup=变更(diva);
功能改变(x){
如果(x.value==“”){
x、 value=“无值”;
}
}
//不同的
var element=document.getElementById('element');
element.onkeyup=函数(){
if(element.value===“”)element.value='sfdfgfd';
};
var divb=document.getElementById(“mydivb”);
if(divb.innerHTML==''){
divb.innerHTML='No content';
}
var divc=document.getElementById(“mydivc”);
divc.onkeyup=dchange(divc);
功能更改(y){
如果(y.innerHTML==''){
y、 innerHTML='No contenible';
}
}


问题在于您将函数返回值分配给
字段。onkeyup
,而它需要是一个函数:

field.onkeyup = function(){
    change(field);
}
var-field=document.getElementById(“myfield”);
field.onkeyup=函数(){
更改(字段);
}
功能改变(x){
如果(x.value==“”){
x、 value=“无值”;
}
}


div怎么能有值和keyup事件?@Shomz是对的。您可能希望在
文档
上有一个键控事件。但是检查一下
div
。试试
(x.InnerText==“|||x.InnerText==未定义的| x.textContent==“||x.textContent==未定义的)
@Shomz你是对的,我已经修复了示例,但问题很明显。好的,我会给你写一个答案。这是真的,但这里是具体的文本