css 中的最后3个字符< div>< a>< /a>< /div>

pzfprimi  于 2023-04-01  发布在  其他
关注(0)|答案(2)|浏览(130)

我有一个问题,一些省略号被自动添加到一个链接的结尾,我拉到我的网站。我真的不知道javascript很好,并试图添加一些东西,以消除这一点!
下面是代码(带有一个假链接):

<div class="item-title-container">
  <a title="Brewery Packaging Technology Course" href="https://www.link">Brewery Packaging Technology Course...</a>
</div>

以下是我尝试过的(3种不同的选择):

let srch = '...';
document.querySelectorAll('.item-title-container').forEach(el => {
  if (el.innerText.indexOf(srch) > -1) el.innerText = el.innerText.split(srch).slice(0, -1).join(srch);
})

let element = document.querySelector('.item-title-container');
element.innerHTML.replace('...','');

var str = document.getElementsByClassName('item-title-container');
str = str.slice(0, -3);

我显然不擅长这个,但正在寻找解决方案!

0yg35tkg

0yg35tkg1#

修复第二种方法

.innerHTML允许您访问和设置div或其他HTML标记的内容。
但是,您不能编辑.innerHTML的值,这可能听起来令人困惑,这里有一些示例。

var x = element.innerHTML; // access the content of element

element.innerHTML = "hello world"; // sets the content of element to "hello world"

您不能使用相同的.innerHTML访问和设置内容,而这正是您通过键入element.innerHTML.replace('...','');所尝试的。
为了解决这个问题,

element.innerHTML = element.innerHTML.replace('...','');

修复第三种方法

当使用.innerHTML访问内容时,它不会返回对内容的引用。这就是以下代码无法工作的原因:

var str = document.getElementsByClassName('item-title-container').innerHTML; // you forgot to add .innerHTML here
str = str.slice(0, -3);

在上面的代码中,编辑str只会编辑str。换句话说,str不是对元素innerHTML的引用。为了使代码工作,您已经将innerHTML设置为str
请尝试以下操作:

var str = document.getElementsByClassName('item-title-container').innerHTML;
str = str.slice(0, -3);
document.getElementsByClassName('item-title-container').innerHTML = str;

为了使上面的代码更容易阅读,请尝试以下操作:

var element = document.getElementsByClassName('item-title-container')

var str = element.innerHTML;
element.innerHTML = str.slice(0, -3);
cfh9epnr

cfh9epnr2#

它可能是一个省略号字符,而不是三个.字符。

element.innerHTML = element.innerHTML.replace(/(\.\.\.|…)$/, '');

相关问题