此处与this问题相关。我可以检查DOM中的元素是否有值?我试图将其置于'if'语句中,并且不确定我的方法是否正确。这是:
if (document.getElementById('customx')){
//do something
}
或者它应该是:
if (document.getElementById('customx') == ""){
//do something
}
编辑:我的意思是,customx
是一个文本输入框。如何检查此字段是否未输入文本。
答案 0 :(得分:20)
getElementById
方法返回一个可用于与元素交互的Element对象。如果未找到该元素,则返回null
。对于input元素,对象的value
属性包含value属性中的字符串。
通过使用&&
运算符短路,并且null
和空字符串在布尔上下文中被视为“falsey”的事实,我们可以组合对元素存在和存在的检查价值数据如下:
var myInput = document.getElementById("customx");
if (myInput && myInput.value) {
alert("My input has a value!");
}
答案 1 :(得分:3)
getElementById将返回false。
var el = document.getElementById("customx");
if (el !== null && el.value === "")
{
//The element was found and the value is empty.
}
答案 2 :(得分:2)
var input = document.getElementById("customx");
if (input && input.value) {
alert(1);
}
else {
alert (0);
}
答案 3 :(得分:0)
你的第一个基本上是正确的。这个,仅供参考,这很糟糕。它在DOM节点和字符串之间进行相等性检查:
if (document.getElementById('customx') == ""){
DOM节点实际上是他们自己的JavaScript对象类型。因此,这种比较根本不会起作用,因为它在两种截然不同的数据类型上进行了相等比较。
答案 4 :(得分:0)
你想:
if (document.getElementById('customx').value === ""){
//do something
}
value
属性将为您提供一个字符串值,您需要将其与空字符串进行比较。