如何循环通过我的html和注入文本,如果一个条件是满足
How to loop through my html and inject text if a condition is met?
我试图写一个函数,生成一个span标签,并注入一些文本,如果满足条件,但我一直接收[object HTMLSpanElement]
。我使用innerText和innerHTML不正确吗?
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。outerHTML
<一口> MDN 共舞,将为您解决这个问题。一口>
item.innerHTML = span.outerHTML;
最简单的解决方案是创建一个字符串,包含所需的html,并将其插入节点:
function checkBlankReviews(){
var reviewTexts = document.querySelectorAll('p.text');
Array.prototype.forEach.call(reviewTexts, function (item) {
if (item.innerText === '') {
item.innerHTML = "<span>No Reviews</span>";
console.log('no reviews for: ' + item.innerHTML);
}
return item;
});
}
checkBlankReviews();
另一个选择是将文本设置为<p>
元素的innerText
:
function checkBlankReviews(){
var reviewTexts = document.querySelectorAll('p.text');
Array.prototype.forEach.call(reviewTexts, function (item) {
if (item.innerText === '') {
item.innerText = "No Reviews";
console.log('no reviews for: ' + item.innerText);
}
return item;
});
}
checkBlankReviews();
相关文章:
- 如果一个手风琴发出咔嗒声,如何最大限度地减少其他手风琴
- 为什么 JavaScript 如果一个数字有一个前导零,就将其视为八进制
- Javascript Regexp :如果一个字母与一个数字相邻,请添加下划线
- jQuery如果一个元素可见,则关闭另一个
- 如何制作两个倒计时计时器,如果一个开始,另一个会停止
- JavaScript:如果一个对象'的名字都是大写的
- 嵌入多对多关系-如果一个新对象还不存在,则添加一个新的对象
- 如果一个javascript模块为null,那么它的侦听器将被清除
- 如果一个键匹配,如何删除数组元素
- jQuery:如果一个字段有Class,则计算其他字段中的单词
- 如果一个组不匹配,如何设置 NULL
- 检查所有 li 如果一个有活动类,那么只有父 ul addclass
- 如果一个模型在续集中引用自身,如何让所有孩子或父母在多对多关联中
- JavaScript初学者,如果一个变量不匹配就做某事
- 如果一个表单输入被禁用,那么两个表单输入是否可以具有相同的名称
- 如果一个值在一个数组中,如果大小写不在't匹配,请将其替换为新值
- 在JavaScript中:如果Object是一个函数,那么如果一个函数是一个对象的实例,它怎么可能呢
- 在一个对象的Javascript数组中,如果一个特定的数组元素本身就是一个对象数组,我如何通过名称/ID来定位该元素
- 在Javascript中,如果一个对象有一个字符键,那么该键的长度可以是1以外的任何值
- 如果一个字符串没有'It’不等于一堆东西