0

嗨,我对 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 来显示销售标志图像)

4

2 回答 2

0

您可以使用http://jquery.com/并执行此操作

给元素分配一个id,比如说

并检查情况

$("#myspan").text() === ""

于 2013-06-26T12:20:08.897 回答
0
((tem.textContent === 0 || tem.textContent === null) && !tem.innerText)

这永远不会true。The.textContent始终是一个字符串(或 - 如果不支持 - undefined)。利用

/\S/.test(tem.textContent || tem.innerText || "")

它测试是否存在任何非空白字符。

tem.childNode.style.display = "none";

你期望childNode成为什么?您可能想使用.firstElementChildor .children[0]

于 2013-06-26T12:23:12.117 回答