首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改一组帖子中一个帖子的背景-JS

更改一组帖子中一个帖子的背景-JS
EN

Stack Overflow用户
提问于 2020-10-19 04:59:15
回答 2查看 31关注 0票数 0

我有一个页面,在上面显示一个完整的帖子(Wordpress),下面是整个帖子组(标题和摘录),包括显示的一个。我想能够改变下面的帖子的背景(标题和摘录),当它是上面完整显示的相同的帖子。

下面是我的代码:

代码语言:javascript
运行
复制
var title1 = document.querySelector(".subhead").innerText.toLowerCase();
var names = document.querySelectorAll('.case-names'),
  result = [];
for (var i = 0; i < names.length; i++) {
  result.push(names[i].textContent.trim().toLowerCase());
  if (title1 == names[i]) {
    document.querySelector(".case-bottom").style.backgroundColor = "red";
  }
};

当我使用控制台日志时,我看到title1 = joe smith,"joe smith“包含在名称数组中。我没有得到任何错误,但背景没有变化。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2020-10-19 05:08:07

您需要将文本放在内联元素中,如span,然后将背景颜色应用于span。

HTML标记:

代码语言:javascript
运行
复制
<h1 class="case-bottom"><span>The Last Will and Testament of Eric Jones</span></h1>

JavaScript:

代码语言:javascript
运行
复制
if (title1 == names[i]) {
  document.querySelector(".case-bottom span").style.backgroundColor = "red";
}
票数 0
EN

Stack Overflow用户

发布于 2020-10-19 05:12:29

我没有测试代码,我不得不猜测您的DOM结构是什么。因此,我的代码可能不能完全满足您的需求,但它应该足以告诉您应该做什么。我想你的HTML:

代码语言:javascript
运行
复制
<div class="main-post"></div>
<div class="case-bottoms">
  <div class="case-bottom>
     <div class="case-name">Post Title</div>
     <div class="case-excerpt">some text</div> 
  </div>
</div>
代码语言:javascript
运行
复制
let cases = document.querySelectorAll('.case-bottom');
[...cases].forEach(case => {
   let caseTitle = case.querySelector(".case-names").trim().toLowerCase();
   if (caseTitle == title1) {
     case.style.backgroundColor = "red";
     // I always prefer this:
     case.classList.add(".is-reading");
  } else {
     // and this:
     case.classList.remove(".is-reading");
  }  
     
)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64418284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档