替换某些短代码的参数

时间:2015-03-03 12:27:34

标签: jquery wordpress

我在textarea中有以下文字:

<textarea class="content">
    [shortcode1 param1=test param2=john]
    [shortcode2 param1=test param2=john]
    [shortcode1 param1=john param2=exchange]
</textarea>

我想如何更改参数名称,但仅限于其shortcode1

所以这应该是结果:

<textarea class="content">
    [shortcode1 newparam1=test newparam2=john]
    [shortcode2 param1=test param2=john]
    [shortcode1 newparam1=john newparam2=exchange]
</textarea>

我目前以下列方式使用jQuery:

$(".content").text($(".content").text().replace("param1", "newparam1"));
$(".content").text($(".content").text().replace("param2", "newparam2"));

但正如你所看到的,它不仅需要shortcode1的参数,而且需要全部。

有人能帮助我吗? 有没有办法优化jquery部分,因为我有10个这样的替换,我可以将它们组合起来吗?

1 个答案:

答案 0 :(得分:1)

在每一行中搜索(使用indexOf)(使用拆分):


var text = $(".content").text().split("]");

for (var i=0, l=text.length; i<l; i++) {
    if (text[i].indexOf("shortcode1") >= 0) {
        text[i] = text[i].replace("param1", "newparam1").replace("param2", "newparam2");
    }
}

$(".content").text( text.join("]") );