在页面加载时用jQuery替换文本字符串

Replace text string with jQuery on page load?

本文关键字:jQuery 替换 文本 字符串 加载      更新时间:2023-09-26

我的html中有以下代码

<p>6565655655|cell</p>

我想删除这条竖线,并将单词"cell"换行到圆括号中。所以我想输出如下

<p>6565655655 (cell)</p>

如何使用jquery当p标签的内容通过ajax调用动态加载

以管道作为分隔符拆分p-标签的内容,并重新插入创建的数组,第二个元素和周围的括号。

下面是一个例子:

var splittedString = $("p").text().split("|");
$("p").html(splittedString[0] + " (" + splittedString[1] + ")");

jsFiddle: http://jsfiddle.net/r3c4J/

几个方法:

var text = '6565655655|cell';
方法1:

var parts = text.split('|');
$('p').text(parts[0] + ' (' + parts[1] + ')');
方法2:

$('p').text(text.replace('|cell', ' (cell)');
方法3:

$('p').text(text.replace(/([0-9]+)'|(.*)/, '$1 ($2)'));

你可以这样做:

$('p').each(function () {
    var $txt = $(this).text();
    if ($txt.indexOf('|') > 0) {
        var txtArray = $txt.split('|');
        $(this).html(txtArray[0] + ' (' + txtArray[1] + ')');
    }
});

示例:http://jsfiddle.net/fewds/E637y/1/

在你的ajax成功方法:

success: function(data)
{
 $(data).find("p").each(function(index,element){
  var pipe = element.innerHTML.indexOf("|");
  if( pipe != -1 ){
   element.innerHTML.replace("|","( ");
   element.innerHTML += ")";
  }
 }
 //continue with placing data on the page.
}

你也可以把它放到一个函数中这样你就可以在页面第一次加载的时候调用它

function replacePipe(element)
{
  $(element).find("p").each(function(index,el){
  var pipe = el.innerHTML.indexOf("|");
  if( pipe != -1 ){
   el.innerHTML.replace("|","( ");
   el.innerHTML += ")";
  }
 }
}

将使ajax成功显示如下:

success: function(data)
{
 replacePipe(data);
 //place data, perhaps $(tar).html(data);
}

你也可以输入onload

window.onload = function(){ 
 replacePipe(document.body);
};

如果你在段落标签中添加一个类名,那么你也可以使用下面的…

html part -

<p class="item">6565655655|cell</p>
jQuery部分

$(document).ready(function() {
var aText = ($('.item').html()).split('|');
$('.item').html(aText[0] + "&nbsp;&#40;" + aText[1] + "&#41;");
});