Вы можете проверить пустые атрибуты.
document.querySelectorAll("[data-tip]").forEach(p => {
p.getAttribute("data-tip") == '' ? p.style.display = 'none' : '';
});
[data-tip] {
position:relative;
}
[data-tip]:after{
display: none;
position: absolute;
content:attr(data-tip);
padding: 5px 8px;
background-color: red;
z-index: 10;
height: 12px;
border-radius: 3px;
white-space: nowrap;
word-wrap: normal;
}
[data-tip]:hover:after+[data-tip].active{
display: block;
}
<div className="tooltip active" data-tip="This should display tooltip"></div>
<div className="tooltip" data-tip="">This should not display</div>
Это также будет работать, если оно содержит пробелы с функцией trim()
.
document.querySelectorAll("[data-tip]").forEach(p => {
p.getAttribute("data-tip").trim() == '' ? p.style.display = 'none' : '';
});
[data-tip] {
position:relative;
}
[data-tip]:after{
display: none;
position: absolute;
content:attr(data-tip);
padding: 5px 8px;
background-color: red;
z-index: 10;
height: 12px;
border-radius: 3px;
white-space: nowrap;
word-wrap: normal;
}
[data-tip]:hover:after+[data-tip].active{
display: block;
}
<div className="tooltip active" data-tip="This should display tooltip"></div>
<div className="tooltip" data-tip=" ">This should not display</div>