首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串替换为包含每个字符的跨度

将字符串替换为包含每个字符的跨度
EN

Stack Overflow用户
提问于 2019-04-19 21:10:02
回答 1查看 22关注 0票数 0

我希望用相同的链替换包含字符链的h1元素的content,但是每个字符都应该包装在span中。

这对我来说很容易,但我可能低估了。

下面是我尝试过的内容(css仅用于调试):

代码语言:javascript
复制
var titleLen = $("#title").length - 1;
for (i=0; i<titleLen; i++) {
	letter = $("#title").charAt(i);
	$("#title").append("<span>" + letter + "</span>");
};
代码语言:javascript
复制
h1 span {
  color: red;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h1 id=title>
Hello World !
</h1>

它不起作用,但我找不到问题。有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-19 21:17:09

当前代码不能工作的部分原因是,您在DOM元素上调用lengthcharAt,而不是在其内容上调用--但即使经过更正,您在迭代的每一步都会修改div的内容,因此第二个charAt将到达您刚刚插入的部分范围,而不是原始字符串的第二个字符。(编辑:我刚刚意识到这种描述是不对的;你最终会在原始文本之后得到一个跨度包装的副本,因为你会追加而不是替换。)

下面是几种可以使用原始算法的不同方法:

代码语言:javascript
复制
// keep a copy of the original string and work from that:
var title = $("#title").html();
$('#title').html('');
for (i = 0; i < title.length; i++) {
  letter = title.charAt(i);
  $("#title").append("<span>" + letter + "</span>");
};


// Alternatively, build a string and dump it into the DOM all at once:
/*
let output = '';
for (i = 0; i < $('#title').html().length; i++) {
  letter = $('#title').html().charAt(i);
  output +="<span>" + letter + "</span>";
};
$('#title').html(output);
*/
代码语言:javascript
复制
h1 span {
  color: red;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h1 id=title>
  Hello World !
</h1>

或者更简单的方法是将字符串拆分为每个字符的数组,然后使用'join‘来包含span标记:

代码语言:javascript
复制
$('#title').html(
  '<span>' + 
  $('#title').html().split('').join('</span><span>') +
  '</span>'
)
代码语言:javascript
复制
h1 span {
  color: red;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<h1 id=title>
Hello World !
</h1>

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

https://stackoverflow.com/questions/55767903

复制
相关文章

相似问题

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