Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查JavaScript中是否存在具有特定类的html元素?_Javascript_Html - Fatal编程技术网

如何检查JavaScript中是否存在具有特定类的html元素?

如何检查JavaScript中是否存在具有特定类的html元素?,javascript,html,Javascript,Html,我试图使用javaScript来确定html页面上是否存在具有特定类名的元素。有问题的元素只是有时加载到页面上 当我使用document.getElementsByClassName('element-in-question')。innerHTML=“Hello” 当元素存在时,它将工作,但当它不存在时,它将返回为“无法设置未定义的innerHTML属性”,其余代码将不运行 有没有办法检查一个元素是否存在,并且只在它存在时修改它,而不破坏代码的其余部分? 感谢您的帮助只需用if语句包装您的代码:

我试图使用javaScript来确定html页面上是否存在具有特定类名的元素。有问题的元素只是有时加载到页面上

当我使用
document.getElementsByClassName('element-in-question')。innerHTML=“Hello”

当元素存在时,它将工作,但当它不存在时,它将返回为“无法设置未定义的innerHTML属性”,其余代码将不运行

有没有办法检查一个元素是否存在,并且只在它存在时修改它,而不破坏代码的其余部分?
感谢您的帮助

只需用if语句包装您的代码:

const elemts = document.getElementsByClassName('element-in-question');
if(elemts.length) {
  // this actually need to be elemts[0].innerHTML 
  elemts.innerHTML = "Hello"
}
注意
文档。GetElementsByCassName
将返回元素的数组/集合,因此如果您确实知道没有其他元素,请继续使用它,否则请切换到
getElementById

根据:

getElementsByCassName()方法返回所有 文档中具有指定类名的元素,作为 HTMLCollection对象


条件很简单,如果

如果希望按类获取元素,函数将返回一个数组(文档中具有指定类名的所有元素的集合),因此您将进行如下检查:

if (document.getElementsByClassName('class-in-question').length > 0) {
     // Existed
}
if (document.getElementById('id-in-question')) {
      // Existed
}
如果希望通过指定id获取元素,函数将返回带有该id的objet HTML,因此您将检查如下:

if (document.getElementsByClassName('class-in-question').length > 0) {
     // Existed
}
if (document.getElementById('id-in-question')) {
      // Existed
}
还可以使用which返回文档中的第一个元素(如果存在),如果不存在,则返回
null

const targetElement=document.querySelector(“.element有问题”);
if(targetElement){
targetElement.innerText='Hi here!';
}

您无法立即设置
.innerHTML
。您正面临另一个问题。正确的语法是:
数组。from(document.getElementsByClassName('element-in-problem')).forEach((v)=>{v.innerHTML=“hello”;
document.getElementsByClassNams()[index]。innerHTML=“…”;