Javascript 紧凑的测试方法;“不为空”;并在JS中相应地设置一个值

Javascript 紧凑的测试方法;“不为空”;并在JS中相应地设置一个值,javascript,jquery,dom,Javascript,Jquery,Dom,如果“x”为空,则此操作当然会失败: 果然,我们应该始终检查指针是否指向某个对象:) 现在,在纯JS甚至jQuery(我必须加载它,所以…)中有没有一种方法可以执行以下操作 setIfExists('myElem', 'Hello'); 是的,我会写 function setIfExists(el, v) { var x = document.getElementById(el); if (x) x.value = v; } 但我想知道这样一个函数是否已经存在。谢谢是的,Jq

如果“x”为空,则此操作当然会失败:

果然,我们应该始终检查指针是否指向某个对象:)

现在,在纯JS甚至jQuery(我必须加载它,所以…)中有没有一种方法可以执行以下操作

setIfExists('myElem', 'Hello');
是的,我会写

function setIfExists(el, v) {
  var x = document.getElementById(el);
  if (x)
    x.value = v;
}

但我想知道这样一个函数是否已经存在。谢谢

是的,Jquery的目标是:少写,多做

$("#myElem").val("Hello")
这是你在所有现存方法中所能找到的最起码的方法。

在这里选择你的毒药

//如果不存在新对象但创建了一个对象,则使用新对象伪造它
var y=document.getElementById('myElem')|{};
控制台日志(y)//日志{}
y、 value=“你好”;
控制台日志(y)//日志{“value”:“Hello”}
//jQuery,不产生错误,日志未定义,c为
//未从中分配任何内容的jQuery对象
//元素不存在,因此未定义
让c=$(“#myElem”).val(“干杯”);
console.log(类型c);//日志对象
console.log(jQuery的c instanceof);//记录真实
//console.log(c);//日志jQuery
console.log(c.jquery);//记录jQuery版本“3.3.1”
console.log(c.val())//未定义
let notthere=$(“#myElem”);
notthere.length|notthere.val(“你好”);
console.log(notthere.value);//未定义
//仅获取值
设j=$(“#myElem”).value=“Woot”;
console.log(类型j,“j:,j);//字符串j:Woot

您已经用
jquery
标记了它,这确实是答案。为什么不直接使用
$(“#myElem”).val(“Hello”)
x&&(x.value=“Hello”)
我根本不知道jQuery,所以欢迎所有帮助:)我发现这个问题是合法的。例如,在C#中,不知道空合并运算符或LYNQ的人编写一些代码,询问如何使其紧凑。SQL问题通常都是一样的:有更好的方法吗?“我根本不懂jQuery”->哇,感谢对所有可能情况的分析:)
function setIfExists(el, v) {
  var x = document.getElementById(el);
  if (x)
    x.value = v;
}
$("#myElem").val("Hello")