我的html中有以下代码
<p>6565655655|cell</p>
我想删除此垂直线并将单词“cell”包装成圆括号。所以我想要输出如下
<p>6565655655 (cell)</p>
当通过ajax调用动态加载p标签的内容时,如何使用jquery来完成它。
答案 0 :(得分:1)
使用管道作为分隔符拆分p-tag的内容,然后重新插入如此创建的数组,第二个元素与周围的括号。
这是一个例子:
var splittedString = $("p").text().split("|");
$("p").html(splittedString[0] + " (" + splittedString[1] + ")");
jsFiddle:http://jsfiddle.net/r3c4J/
答案 1 :(得分: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)'));
答案 2 :(得分:0)
你可以这样做:
$('p').each(function () {
var $txt = $(this).text();
if ($txt.indexOf('|') > 0) {
var txtArray = $txt.split('|');
$(this).html(txtArray[0] + ' (' + txtArray[1] + ')');
}
});
答案 3 :(得分:0)
在你的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);
}
你也可以加载
window.onload = function(){
replacePipe(document.body);
};
答案 4 :(得分:0)
如果您在段落标记中添加了类名,那么您还可以使用以下内容...
html part -
<p class="item">6565655655|cell</p>
jQuery部分
$(document).ready(function() {
var aText = ($('.item').html()).split('|');
$('.item').html(aText[0] + " (" + aText[1] + ")");
});