替换HTML元素中的字符

时间:2016-05-16 15:11:48

标签: javascript jquery replace

我在页面上有一些文字,我使用变量:

<p class="category-list-replace">ksadj| lksd| sakdj</p> 
<p class="category-list-replace">sdawfe| nekesa</p> 
<p class="category-list-replace">opeiuf| elnfele</p> 

var list = $('.category-list-replace');

文本分为三个不同的部分,因此变量返回3个对象。我想替换管道的任何实例; “|”用逗号“,”代替。

var listnew = list.replace("|", ",");

我被困在这里,无法解决如何分割变量,以便每个人都可以更换角色。

3 个答案:

答案 0 :(得分:6)

我建议使用text功能,例如:

var list = $('.category-list-replace');
list.text(function(i, text) {
    return text.replace(/\|/g, ",")
});

注意,这也使用带有全局标志(/\|/)的正则表达式(g)来替换|个字符的多次出现。

$("#go").click(function() {
  var list = $('.category-list-replace');
  list.text(function(i, text) {
    return text.replace(/\|/g, ",")
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="category-list-replace">ksadj| lksd| sakdj</p> 
<p class="category-list-replace">sdawfe| nekesa</p> 
<p class="category-list-replace">opeiuf| elnfele</p>
<button id="go">Replace</go>

答案 1 :(得分:0)

这是你正在寻找的东西吗?

list.each(function() {
  var $element = $(this);
  var text = $element.text();
  $element.text(text.replace('|', ','));
});

答案 2 :(得分:0)

看起来有3个带有名为“category-list-replace”的类的html dom

lists = document.getElementsByClassName("category-list-replace")
var results = [];
for(i = 0; i < lists.length; i++) {
var contents = lists[i].innerHTML;
var texts = contents.split("|");
texts = texts.join(",");
results[i] = texts;
}

检查结果数组!