我正在与wordpress网站合作。我使用javascript编写了一个函数,该函数向body标签添加了一个类,该类允许根据类别显示不同的背景。当类别是单个单词时,它会很好地工作。但是,如果我的类别包含2个或更多的单词,它将停止工作。这是代码:
( window.onload=function() {
let cat = document.querySelector('.cats').lastElementChild.textContent;
let body = document.querySelector('body');
if(cat.indexOf(' ') >= 0) {
cat.replace(' ','-');
body.classList.add(cat.toLowerCase());
} else {
body.classList.add(cat.toLowerCase());
}
})();
如果类别是“牙医”,则此字符串将添加到body标签,但如果是“普通医生”,它将不再起作用。
仅当它是使用if_single()的帖子时,我才使用functions.php调用此函数。
我尝试使用replace()替换破折号的空间,但是我没有正确实现它。
我该怎么做才能将诸如“普通医师”之类的字符串转换成“普通医师”之类的字符串,并可以将其作为类添加到body标签?
答案 0 :(得分:1)
首先,querySelector
仅挂钩遇到的第一个选择器。如果要验证具有该类名称的每个元素,请改用querySelectorAll
或getElementsByClassName
。
第二,与您的问题有关,因此replace
仅替换第一个匹配项。您应该将其替换为:
cat.replace(/\s/g, "");
但是,您还必须重新分配它:
cat = cat.replace(/\s/g, "");
答案 1 :(得分:1)
使用replace时,字符串的值不会更改。 试试这个:
cat = cat.replace(/ /g,'-');