繁体   English   中英

如何使用Javascript删除多个元素中字符的最后一个实例之前和之后的文本?

[英]How do I use Javascript to remove text before and including the last instance of a character in multiple elements?

我是Java的新手,所以我正在竭尽全力地学习,但是我对它的工作原理有所了解。 我有看起来像这样的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?;
}

谁能帮助新手?

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

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/pop

for (i = 0; i < y.length; i++) {
     y[i].innerHTML = y[i].innerHTML.split('/').pop()
}

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

 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> 

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

x.innerHTML = x.innerHTML.replace(/^.*\//, '');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM