Javascript只适用于第一个元素[已关闭]

rur96b6h  于 2023-01-29  发布在  Java
关注(0)|答案(1)|浏览(129)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

昨天关门了。
Improve this question
我使用javascript来修改一个特定的字符(#),以增加一个单词的格式,并将其改为斜体(),这对我的第一个元素很有效,但对第二个或后面的元素没有影响。
我试着添加每一个(函数),但它也不起作用。

<div>

<p class="ba-blog-post-title">Beispieltext 1: #kursiv%!
</p></div>
<div>

<p class="ba-blog-post-title">Beispieltext 2: #nicht kursiv%!
</p></div>
$(document).ready(function(){
let text = document.getElementsByClassName("ba-blog-post-title")[0].innerHTML;
let result = text.replace("#", "<i>").replace("%", "</i>");

document.getElementsByClassName("ba-blog-post-title")[0].innerHTML = result;
});
qij5mzcb

qij5mzcb1#

  1. getElementsByClassName返回一个类似数组的活动HTML元素集合。
  2. getElementsByClassName("ba-blog-post-title")[0]获取由特定类标识的集合,然后使用array-access notation[0])获取第一个元素。
    而这是你的过程唯一起作用的元素。
    因此,您需要to use a method of iteration来遍历集合,并在每个元素上执行任务。
    我决定在本例中使用querySelectorAll,因为处理实时集合可能会产生意想不到的副作用querySelectorAll返回一个静态节点列表。
    然后只需添加现有代码within a loop即可。
const paras = document.querySelectorAll('.ba-blog-post-title');

paras.forEach(para => {

  const replaced = para.textContent
    .replace('#', '<i>')
    .replace('%', '</i>');

  para.textContent = replaced;

});
<div>
  <p class="ba-blog-post-title">Beispieltext 1: #kursiv%!</p>
</div>
<div>
  <p class="ba-blog-post-title">Beispieltext 2: #nicht kursiv%!</p>
</div>

其他文件

相关问题