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