【问题标题】:'innerHTML' doesn't work'innerHTML' 不起作用
【发布时间】:2016-11-15 10:29:09
【问题描述】:

我的页面中目前有这一行:

<p id="replaced">
    <a id="linkReplace" href="https://www.g2a.com/r/nowyoushare">
        <img src="images/ads.png" class="img-responsive" alt="" onmouseover="hover(this);" onmouseout="unhover(this);">
    </a>
</p>

所以 adblock 检测并阻止我的链接和图片: image

所以用JavaScript 创建了一个测试脚本,但它不起作用:/

代码:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/lightbox.min.js"></script>
<script type="text/javascript" src="js/wow.min.js"></script>
<script type="text/javascript" src="js/main.js"></script> 
<script>
    if(document.getElementById('replaced').length == 0) {
        document.getElementById('replaced').innerHTML = 'chocolat';
    }
</script>

有人可以帮助我吗?谢谢

【问题讨论】:

  • 也许你想试试if(document.getElementById('replaced').innerHTML == ""),表示&lt;p&gt;标签内是否没有HTML。
  • 谢谢,adblock 是否删除了

    ?

  • 我不知道 p 是否被删除。如果&lt;p&gt; 被删除,则不能使用document.getElementById('replaced').innerHTML = 'chocolat';;相反,您需要重新创建&lt;p&gt; 标签...在这种情况下,可以直接添加&lt;p&gt;chocolat&lt;/p&gt;。

标签: javascript innerhtml getelementbyid


【解决方案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';
}
&lt;p id="replaced"&gt;&lt;/p&gt;

【讨论】:

    【解决方案2】:

    我无法理解您要达到的目标..您能更好地解释一下吗?

    顺便说一句..

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

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

    EDIT在@bezoo回复后

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

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

    然后对刚刚创建的元素的 innerhtml 做任何你想做的事情。

    EDIT2 我误会了。。

    这段代码应该可以工作

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

    【讨论】:

    • 但是我希望如果“replaced”是空的,那么添加一些内容到
    【解决方案3】:

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

    如果要测试元素是否存在,则检查返回值是否为真值:

    if (document.getElementById('replaced'))
    

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 2017-05-03
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多