如果缺少,请添加所需的内部简码

Add needed inner shortcode if missing

我有以下代码:

<textarea class="content">
    [row]
        [col-md-12]
            text
        [/col-md-12]
    [/row]
    [row]
        text
    [/row]
</textarea>

现在我想在 [row] 内(紧跟其后)添加 [col-md-12],并在 [/row] 之前用 jquery 关闭它。这应该是结果:

<textarea class="content">
    [row]
        [col-md-12]
            text
        [/col-md-12]
    [/row]
    [row]
        [col-md-12]
            text
        [/col-md-12]
    [/row]
</textarea>

(注:上面的代码不是bootstrap!我直接取了bootstrap,因为比较清楚,需要"col-md-12"!)

这是当前代码的 jsfiddle 示例: http://jsfiddle.net/Zoker/6mzrj1e7/

现在在 "converting" 之后第一个 '[vc_row]' 和 '[/vc_column]' 在结束 '[/vc_row]' 之前。 这就是我需要添加的简码。我不知道如何证明,如果它丢失了然后添加它...

另外,我必须点击按钮 3 次才能让内容完全更新。单击 1 后如何使其工作? (编辑:用 修复的那个)

LIVE:

很难实现:(希望对您有所帮助)


// auto_descritive
function wrap_string( str, open_param, close_param ){
    var text = $(".content").text();

    // all indexes of str
    var re = new RegExp(str,'gi'), results = [];
    while (re.exec(text)){
        results.push(re.lastIndex);
    }

    // check each parent param of each str
    for (var i=0; results[i]; i++) {
        var y_param = text.substring(0, results[i]).lastIndexOf(']')+1;
        var x_param = y_param - open_param.length;
        var lastParam = text.substring(x_param, y_param);
        var half1 = text.substring(0, y_param);
        var half2 = text.substring(results[i]+str.length, text.length);
        if (lastParam != open_param) {
            text = half1 + open_param + str + close_param + half2;
            $(".content").text( text );
            // return true if one was wrapped
            return true;
        }
    }

    // return false in case nothing was wrapped
    return false;

}


// wrap all "text" with "[col-md-12] /"
while( wrap_string( "text", "[col-md-12]", "[/col-md-12]" ) );