我正在根据字符串发生的次数在某些wordpress帖子的底部插入文本。我设法将文本添加到底部并附加,但我想使用indexOf在特定位置插入。
这是原始文本:
if ($('body').hasClass("single-post")){
var count = 0;
var cSearch = $('body').text();
var words = cSearch.indexOf('Words To Find')
while (words !== -1){
count++;
words = cSearch.indexOf('Words To Find', words + 1);
}
if( count >= 2){
$('.entry-content').append('<br><br>Sample Text');
}
}
以下是我将如何获取我想要插入的位置:
var insertLocation = cSearch.indexOf('Show what ya');
如何拼接&#34;示例文本&#34;进入insertLocation指定的位置?
我发现了一些关于使用polyfil for .splice但我不确定它是否适用于此。使用它如:
$(cSearch).splice( insertLocation, -1 ).text( "Sample Text" );
有人可以建议一种方法吗?谢谢!
答案 0 :(得分:0)
尝试创建代表总匹配的变量,indexOf()
匹配加匹配的文本.length
,使用.slice()
在第二次匹配前插入原始文本,新文本插入,然后是原始文本的其余部分
var text = $("div").text(),
match = "Words To Find",
txt = " Sample Text ",
matches = 0,
n = 0,
// `max` : total number of `matches` before inserting `txt`
max = 2;
while (matches < max) {
if (text.indexOf(match, n) !== -1) {
i = text.indexOf(match, n);
n = i + match.length;
++matches
}
}
// insert `re` after second match of `"Words To find"`
var re = text.slice(0, i + match.length) + txt;
$("div").text(re + text.slice(i));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<body>
<div>Words To Find abc def Words To Find ghi Words To Find</div>
</body>