javascript - 如果满足条件,如何遍历我的 html 并插入文本?

标签 javascript html

我正在尝试编写一个生成跨度标记并在满足条件时注入(inject)一些文本的函数,但我一直收到 [object HTMLSpanElement]。我是否错误地使用了 innerText 和 innerHTML?

JavaScript:

function checkBlankReviews(){

  var reviewTexts = document.querySelectorAll('p.text');

  Array.prototype.forEach.call(reviewTexts, function (item) { // iterate the elements

      if (item.innerText === '') {
          var span = document.createElement('span');
          span.innerText = "No Reviews";
          item.innerHTML = span;
          
          console.log('no reviews for: ' + item.innerHTML);
      } 

    return item;
    
  });


}

这是我的 jsbin

最佳答案

问题在于:

item.innerHTML = span;

innerHTML 需要一个字符串,所以这基本上会变成

item.innerHTML = span.toString();

这是您最终获得 [object HTMLSpanElement] 的地方。相反,您似乎只想要您构建的 span 元素的 html。 outerHTMLMDN将为您解决。

item.innerHTML = span.outerHTML;

关于javascript - 如果满足条件,如何遍历我的 html 并插入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32659530/

相关文章:

javascript - 附加组将d3强制布局中的所有内容弄乱了

javascript - jQuery:获取元素CSS值

javascript - 隐藏透明div后面的元素,但不隐藏背景

javascript - 异步 Javascript 加载前的页面重定向

html - 在 html 和 css 中调整 Material 设计图标大小的最简单方法是什么?

javascript - 使用 jQuery 修改加载时动态添加的元素

javascript - 如何使用 puppeteer 缓存文件

javascript - 如何从单独文件中的另一个 View 调用主干 View 函数

JavaScript - 子继承破坏了父继承

javascript - 在滚动溢出 div 中放置一个弹出窗口