您好我使用javascript的经验有限,我正在尝试使用脚本为div添加样式。
我在cms上有一个实例,我无法直接访问代码,我可以改变的是<div class="overlay">
和javascript。如果包含div的span为空,我需要能够隐藏div。
Html:
<div class="textrow div_SA" style="height:16px;">
<span class="spn_SA" style="font-weight:bold;color:#B22222;">
<div class="overlay"></div> Save $10.00
</span>
</div>
我想使用的javascript(在这里找到并修改了一下)
window.onload = function () {
var spans = document.getElementsByTagName('span');
var i = 0,
L = spans.length,
tem, pa;
while (i < L) {
tem = spans[i++];
if ((tem.className.indexOf('spn_SA') != -1) && ((tem.textContent === 0 || tem.textContent === null) && !tem.innerText)) {
tem.childNode.style.display = "none";
}
}
};
结果是,如果跨度不包含文本Save $10.00
,则脚本会将display:none
添加到<div class="overlay"></div>
(我使用此div来显示销售代码图像)
答案 0 :(得分:0)
答案 1 :(得分:0)
((tem.textContent === 0 || tem.textContent === null) && !tem.innerText)
这永远不会是true
。 .textContent
始终是一个字符串(或 - 如果不支持 - undefined
)。使用
/\S/.test(tem.textContent || tem.innerText || "")
测试是否存在任何非空白字符。
tem.childNode.style.display = "none";
您期望childNode
是什么?您可能希望使用.firstElementChild
或.children[0]
。