1

我需要从标题中删除前 3 个字符。我用了:

$(".layered_subtitle").each(function() {
var text = $(this).text();
text = text.replace('06.', '');
$(this).text(text);

我动态加载了带有编号的标题:

01.标题

02.标题

03.标题..

如何分隔要删除的字符?

4

8 回答 8

1

您可以使用它(与 //slice相关的 JavaScript 函数中最短的,如果仅使用带正整数的第一个参数,它们实际上是相同的):substringsubstr

text = text.slice(3);
于 2012-09-15T10:04:38.170 回答
1

到目前为止的答案都很好,但我认为你应该以不同的方式做以备将来使用。也许您的计数会增加,所以只需搜索“。”的第一次出现。然后在那里剪断绳子。

text = text.substring(text.indexOf(".")+1);
于 2012-09-15T10:08:08.243 回答
0

像这样试试

text = text.substr(3);
alert(text);
$(this).text(text);
于 2012-09-15T10:02:10.497 回答
0

您可以使用这样的子字符串方法:

$(".layered_subtitle").each(function() {
    var text = $(this).text();
    if(text && text.length > 3){
        text = text.substring(3)
        $(this).text(text);
    }
});

如果您需要在 ajax 请求成功时执行此操作:

function removeChars(){
   $(".layered_subtitle").each(function() {
       var text = $(this).text();
       if(text && text.length > 3){
           text = text.substring(3)
           $(this).text(text);
       }
   });
}
var serializedData = {};//Fill data
$.ajax({
    url: "url",
    type: "post",//post or get
    data: serializedData,
    // callback handler that will be called on success
    success: function (){
        //Add here logic where you update DOM
        //(in your case add divs with layered_subtitle class)
        //Now there is new data on page where we need to remove chars
        removeChars();
    }
});
于 2012-09-15T10:06:47.697 回答
0

如果标题至少包含三个字符,您可以删除前三个字符:

if (text.length >= 3) text = test.substring(3);

您可以使用正则表达式仅删除匹配格式“nn.xxxx”的数字:

 text = text.replace(/^\d\d\./, '');
于 2012-09-15T10:25:19.593 回答
0

只需使用javascript 子字符串

text = text.substring(3);
于 2012-09-15T10:01:09.983 回答
0

尝试这个

text = text.substring(3)

代替

text = text.replace('06.', '');
于 2012-09-15T10:08:27.027 回答
0

如果您不知道分隔符(点)的确切位置,则必须找到它:

var newText = oldText.substr(oldText.indexOf('.') + 1);

或者,如果您可以在分隔符后找到许多数字或空格字符,则需要使用正则表达式:

var newText = oldText.replace(/^\d+\.\s*/, "");

两者都会起作用。

于 2012-09-15T10:14:59.843 回答