如果另一个div只使用javascript为空,如何将innerHTML添加到div

时间:2015-05-08 06:52:46

标签: javascript jquery css ajax

我有关于javascript的问题。如果它是空的,我想将innerHTML添加到div。这是我的代码,请帮我复习。所有div都是同一个类,不是使用id而只使用javascript。谢谢 HTML:

<div class="B">Test</div> <br/>
<div class="B"></div> <br/>

的javascript:

function test(){
    var x = document.getElementsByClassName("B");
    for (i = 0; i < x.length; i++) { 
        if (x[i].length() < 0){ 
            x[i].innerHTML = "add test";    
        }
    }
}

2 个答案:

答案 0 :(得分:4)

您需要使用x[i].innerHTML.length代替x[i].length(),并且它不会小于零,至少它将为零。

我在您的代码中做了很多更正

  • 使用innerHTML的长度而不是html元素div
  • 长度是属性,因此不应使用括号
  • 长度不会小于零,因此条件应检查长度是否为零。
  • 为了安全起见,在取长度之前修剪innerHTML。

<强> Live Demo

function test(){
    var x = document.getElementsByClassName("B");
    for (i = 0; i < x.length; i++) { 
        if (x[i].innerHTML.trim().length == 0){ 
            x[i].innerHTML = "add test";    
        }
    }
}

答案 1 :(得分:1)

jquery解决方案:

$('.B').each(function() {
   var that = $(this);
   if (that.text().length == 0) {
      that.html('add test');
   }
});

<强>样本

B类中没有任何文本的最后两个div将填充字符串add test

&#13;
&#13;
$('.B').each(function() {
   var that = $(this);
   if (that.text().length == 0) {
      that.html('add test');
   }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="A">testA</div>
<div class="B">testB</div>
<div class="B"></div>
<div class="B"></div>
&#13;
&#13;
&#13;