首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Javascript删除元素中的第一个字母(ES6)

使用Javascript删除元素中的第一个字母(ES6)
EN

Stack Overflow用户
提问于 2018-07-17 06:39:07
回答 2查看 180关注 0票数 0

此脚本的目标是删除文本块的第一个字母- firstLetter -并将其替换为newFirstLetter

代码语言:javascript
复制
const initialLetter = (firstParagraph) => {
  let firstLetter = firstParagraph.innerHTML.charAt(0)
  let newFirstLetter = "<span class='initial-letter'>" + firstLetter + "</span>"
  let paragraphContent = firstParagraph.innerHTML
  // this is not working
  paragraphContent.substr(0, 1)
  // this is working
  firstParagraph.insertAdjacentHTML('afterbegin', newFirstLetter)
}

到目前为止,行firstParagraph.insertAdjacentHTML('afterbegin', newFirstLetter)正常工作,但是行paragraphContent.substr(0, 1)没有删除该内容块中的第一个字母。我想知道我在这里做错了什么?

此脚本的当前输出为:

代码语言:javascript
复制
 <p><span class="initial-letter">E</span>Every day we see the potential technology provides to create better pathways of care—for the people delivering care and the patients they treat who are managing their own chronic disease(s). Rock Health reported that since 2011, $23B has been invested in thousands of digital health companies. Yet, historically, innovative solutions for kidney disease have been static at best and from a funding perspective, largely very quiet.</p>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-17 06:48:53

javascript中的字符串是不可变的,所以您不能简单地更改它,您需要将更改后的版本重新分配回innerHTML

代码语言:javascript
复制
let p = document.getElementById('p')
const initialLetter = (firstParagraph) => {
  let firstLetter = firstParagraph.innerHTML.charAt(0)
  let newFirstLetter = "<span class='initial-letter'>" + firstLetter + "</span>"
  let paragraphContent = firstParagraph.innerHTML
  firstParagraph.innerHTML = paragraphContent.substr(1)
  // this is working
  firstParagraph.insertAdjacentHTML('afterbegin', newFirstLetter)
}
initialLetter(p)
代码语言:javascript
复制
span.initial-letter {
  color:red
  }
代码语言:javascript
复制
<p id='p'>Every day we see the potential technology provides to create better pathways of care—for the people delivering care and the patients they treat who are managing their own chronic disease(s). Rock Health reported that since 2011, $23B has been invested
  in thousands of digital health companies. Yet, historically, innovative solutions for kidney disease have been static at best and from a funding perspective, largely very quiet.</p>

票数 2
EN

Stack Overflow用户

发布于 2018-07-17 06:48:49

你可以把第一个字母切成薄片,然后贴上一些新的东西。

代码语言:javascript
复制
var field = document.getElementById("test").innerHTML;
var edited = document.getElementById("edited");

var newField = field.slice(1);

edited.innerHTML = "This is after slice: " + newField;

console.log(newField);
代码语言:javascript
复制
<div id="test">Hello</div>
<div id="edited"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51370960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档