Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改一组帖子中一篇帖子的背景-JS_Javascript_Css - Fatal编程技术网

Javascript 更改一组帖子中一篇帖子的背景-JS

Javascript 更改一组帖子中一篇帖子的背景-JS,javascript,css,Javascript,Css,我有一个页面,上面是一篇完整的文章(Wordpress),下面是一组完整的文章(标题和摘录),包括显示的那篇。我想能够改变以下文章的背景(标题和摘录),当它是一个完整的显示在上面的相同的职位 这是我的密码: var title1 = document.querySelector(".subhead").innerText.toLowerCase(); var names = document.querySelectorAll('.case-names'), result

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

这是我的密码:

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";
  }
};
var title1=document.querySelector(“.subhead”).innerText.toLowerCase();
var name=document.querySelectorAll('.case name'),
结果=[];
对于(var i=0;i
当我使用控制台日志时,我看到title1=joe smith,“joe smith”包含在names数组中。我没有收到任何错误,但是背景没有改变


提前感谢。

您需要将文本放入一个内联元素中,如span,然后将背景色应用于span

HTML标记:

<h1 class="case-bottom"><span>The Last Will and Testament of Eric Jones</span></h1>

我没有测试代码,我不得不猜测您的DOM结构是什么。因此,我的代码可能不完全符合您的需要,但它应该足以向您展示您应该做什么。我想你的HTML:

<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>

什么样的HTML元素具有.case底层类?这将是非常糟糕的非语义HTML。我希望情况不是这样,你不应该推荐这个。我什么都不推荐。通过查看代码和目标,我做出了一个假设。不是隐式的,但更好的做法是只给出实际编写良好的代码示例,除非另有说明。在我的答案中,在你的class.HTML之后,你还缺少了一个双引号,只是为了显示我选择了哪位家长,以及我是如何选择标题的。没别的了。此外,缺少双引号与我的答案无关。不需要防御性,只需给出一些结构性反馈。还是由你决定怎么处理它。
<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>
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");
  }  
     
)