簡體   English   中英

在頁面加載時用jQuery替換文本字符串?

[英]Replace text string with jQuery on page load?

我的HTML中有以下代碼

<p>6565655655|cell</p>

我想刪除此垂直線,並將“單元格”一詞包裹在圓括號中。 所以我想要像下面的輸出

<p>6565655655 (cell)</p>

當通過ajax調用動態加載p標簽的內容時,如何使用jquery做到這一點。

用管道作為分隔符分割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部分-

<p class="item">6565655655|cell</p>

jQuery部分

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM