“innerHTML”不起作用

问题描述 投票:0回答:3
javascript getelementbyid
3个回答
1
投票

但是我希望如果“替换”为空,那么添加一些内容到

如果您想检查内容是否为空,请使用

.innerHTML.length
:

if(document.getElementById('replaced').innerHTML.length == 0) {
    document.getElementById('replaced').innerHTML = 'chocolat';
}

希望这有帮助。


内容为空的情况:

if(document.getElementById('replaced').innerHTML.length == 0) {
  document.getElementById('replaced').innerHTML = 'chocolat';
}
<p id="replaced"></p>


1
投票

我无法理解你想要实现什么......你能更好地解释一下吗?

顺便说一句..

if(document.getElementById('replaced').length == 0) {
        document.getElementById('replaced').innerHTML = 'chocolat';
    }

基本上你是在说“如果替换的元素不存在,则替换其中的内容”。它怎么可能起作用?

@bezoo

回复后编辑

您可以编写类似的内容来在检查元素是否存在后创建该元素。

 if(document.getElementById('replaced').length == 0) {
            var p = document.createElement('p');
            p.setAttribute("id", "replaced");
        }

然后对刚刚创建的元素的innerhtml 执行任何您想要的操作。

编辑2 我理解错了..

这段代码应该可以工作

if(document.getElementById('replaced').innerHTML == "") {
            document.getElementById('replaced').innerHTML = 'chocolat';
        }

-1
投票

getElementById
返回 HTML 元素节点。它没有
length
属性,因此该属性永远不会等于
0

如果您尝试测试该元素是否存在,请检查返回值是否为真值:

if (document.getElementById('replaced'))
© www.soinside.com 2019 - 2024. All rights reserved.