0

我是 Javascript 的新手,所以我正在尽力学习,但我一直坚持它是如何工作的。我有类似于此的 html:

<div id="myDiv">
     <p>string/string/Red</p>
     <p>string/string/Green</p>
     <p>string/string/Blue</p>
</div>

我想使用 Javascript 删除之前的所有文本,包括“/”的最后一个实例,如下所示:

<div id="myDiv">
     <p>Red</p>
     <p>Green</p>
     <p>Blue</p>
</div>

从我看到的示例中,我相信我需要以某种方式使用 substring() 和 lastIndexOf() ,但我承认我对 Javascript 的了解不够,无法理解它应该如何工作。这是我正在使用的代码,但我不知道如何合并 substring() 和 lastIndexOf() 来获得我想要的:

var x = document.getElementById("myDIV");
var y = x.getElementsByTagName("P");
var i;
for (i = 0; i < y.length; i++) {
     y[i].innerHTML = // WHAT GOES HERE?;
}

任何人都可以帮助新手吗?

4

3 回答 3

1

我认为您可以使用拆分和弹出来实现它 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop

for (i = 0; i < y.length; i++) {
     y[i].innerHTML = y[i].innerHTML.split('/').pop()
}
于 2019-09-17T17:37:54.040 回答
1

对于每个节点,将文本拆分为一个数组并取最后一项:

var ps = document.querySelectorAll('#myDiv p'), i;
for (i = 0; i < ps.length; ++i) {
  	ps[i].textContent = ps[i].textContent.split("/").pop();
}
<div id="myDiv">
     <p>string/string/Red</p>
     <p>string/string/Green</p>
     <p>string/string/Blue</p>
</div>

于 2019-09-17T17:43:17.580 回答
0

你可以用正则表达式来做到这一点:

x.innerHTML = x.innerHTML.replace(/^.*\//, '');
于 2019-09-17T17:39:21.490 回答