在我的JavaScript中,我想检查具有特定id的元素是否存在,我尝试了2种方式
1)。
var myEle = document.getElementById("myElement");
if(myEle == null){
var myEleValue= document.getElementById("myElement").value;
}
2)。
if(getElementById("myElement")){
var myEleValue= document.getElementById("myElement").value;
}
但它给出了同样的错误 -
预期对象
答案 0 :(得分:48)
var myEle = document.getElementById("myElement");
if(myEle){
var myEleValue= myEle.value;
}
答案 1 :(得分:6)
您只需使用if(yourElement)
var a = document.getElementById("elemA");
var b = document.getElementById("elemB");
if(a)
console.log("elemA exists");
else
console.log("elemA does not exist");
if(b)
console.log("elemB exists");
else
console.log("elemB does not exist");
<div id="elemA"></div>
答案 2 :(得分:3)
您需要指定您从哪个对象调用getElementById。在这种情况下,您可以使用文档。您也不能直接在任何元素上调用.value。例如,如果元素是文本框.value将返回值,但如果它是div,则它将没有值。
您的情况也是错误的,您正在检查
if(myEle == null)
你应该改为
if(myEle!= null)
var myEle = document.getElementById("myElement");
if(myEle != null) {
var myEleValue= myEle.value;
}
答案 3 :(得分:2)
document.getElementById('yourId')
是正确的方法。
文档引用DOM中加载的HTML文档。
并使用函数getElementById()搜索id 它接受一个元素id的参数
解决方案将是:
var elem = (document.getElementById('myElement'))? document.getElementById('myElement').value : '';
/* this will assign a value or give you and empty string */
答案 4 :(得分:1)
getElementById
返回值:元素对象,代表具有指定ID的元素。如果不存在具有指定ID的元素,则返回null 参见:https://www.w3schools.com/jsref/met_document_getelementbyid.asp
真实vs虚假
在JavaScript中,真实值是在布尔上下文中求值时认为是正确的值。除非将它们定义为虚假(即,除了false,0,“”,null,undefined和NaN之外),否则所有值都是真实的。参见:https://developer.mozilla.org/en-US/docs/Glossary/Truthy
在document
中找不到dom元素时,它将返回null
。 null是Falsy,可以在if语句中用作boolean expression
。
var myElement = document.getElementById("myElement");
if(myElement){
// Element exists
}
答案 5 :(得分:1)
使用typeof进行元素检查。
if(typeof(element) === 'undefined')
{
// then field does not exist
}