[英]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] + ')');
}
});
在你的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] + " (" + aText[1] + ")");
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.