2013-01-02 96 views
1

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

<p>6565655655|cell</p> 

我想刪除這個垂直線,敷詞「細胞」成圓形支架下面的代碼。所以,我要像下面

<p>6565655655 (cell)</p> 

我如何使用jQuery可以做到這一點時,輸出動態p標籤加載通過Ajax調用的內容。

+1

歡迎的StackOverflow!你到目前爲止做了什麼來完成這個任務? –

回答

1

用管道作爲分隔符分割p標籤的內容,並重新插入如此創建的數組,第二個元素與周圍的括號。

這裏的示例:

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

的jsfiddle:http://jsfiddle.net/r3c4J/

0

幾種方法做到這一點:

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)')); 
0

你可以做這樣的:

$('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/

0
在阿賈克斯的成功方法

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 += ")"; 
    } 
} 
} 

這將使得阿賈克斯成功是這樣的:

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

,你可以這樣做這太的onload

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

如果添加一個類名的段落標記,然後你也可以使用下面的...

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;"); 
});