Javascript 如何仅在openingtag中为颜色添加值

Javascript 如何仅在openingtag中为颜色添加值,javascript,Javascript,我有一段代码用于生成bbcode标记: PerformBBCode: function(TextArea, Operation, Value) { bbcodeOpts = { opener: '[', closer: ']' } switch (Operation) { /* added color fonts */

我有一段代码用于生成bbcode标记:

PerformBBCode: function(TextArea, Operation, Value) {
            bbcodeOpts = {
                opener: '[',
                closer: ']'
            }
            switch (Operation) {

                /* added color fonts */
                case 'red':
                    $(TextArea).insertRoundTag('color', bbcodeOpts, {'': 'red'});

                    break;

                /* end color fonts */

                case 'bold':
                    $(TextArea).insertRoundTag('b', bbcodeOpts);
                    break;

                case 'italic':
                    $(TextArea).insertRoundTag('i', bbcodeOpts);
                    break;
在粗体和斜体的情况下,当按下按钮时会产生:

[b][/b]
[i][/i]
红色的案例在上面我的代码中生成:

[color ="red"][/color]
应该是这样的:

[color=red][/color]
我怎样才能做到这一点

更新:

这是$.fn.insertRoundTag:

 $.fn.insertRoundTag = function(tagName, opts, props) {
    var opentag = opts.opentag != undefined ? opts.opentag : tagName;
    var closetag = opts.closetag != undefined ? opts.closetag : tagName;
    var prefix = opts.prefix != undefined ? opts.prefix : '';
    var suffix = opts.suffix != undefined ? opts.suffix : '';
    var prepend = opts.prepend != undefined ? opts.prepend : '';
    var replace = opts.replace != undefined ? opts.replace : false;
    var opener = opts.opener != undefined ? opts.opener : '';
    var closer = opts.closer != undefined ? opts.closer : '';
    var closeslice = opts.closeslice != undefined ? opts.closeslice : '/';
    var closetype = opts.closetype != undefined ? opts.closetype : 'full';
    var shortprop = opts.shortprop;
    var focusprop = opts.center;
    var hasFocused = false;
     strStart = prefix + opener + opentag;
    strEnd = '';

    if (shortprop) {
        strStart = strStart + '="' + shortprop;
        if (focusprop == 'short') {
            strEnd = strEnd + '"';
            hasFocused = true;
        }
        else
            strStart = strStart + '"';
    }
    if (props) {
        var focusing = false;
        for (var param in props) {
            if (hasFocused) {
                strEnd = strEnd + ' ' + param + '="' + props[param] + '"';
                continue;
            }

            if (!hasFocused) {
                strStart = strStart + ' ' + param + '="' + props[param];
                if (param == focusprop) {
                    focusing = true;
                    hasFocused = true;
                }
            }

            if (focusing) {
                strEnd = strEnd + '"';
                focusing = false;
            } else {
                strStart = strStart + '"';
            }
        }
    }

    strReplace = '';
    if (prefix) {
        var selection = $(this).hasSelection();
        if (selection) {
            strReplace = selection.replace(/\n/g, '\n' + prefix);
        }
    }

    if (replace != false) {
        strReplace = replace;
    }

    if (closetype == 'full') {
        if (!hasFocused)
            strStart = strStart + closer;
        else
            strEnd = strEnd + closer;

        strEnd = strEnd + opener + closeslice + closetag + closer + suffix;
    } else {
        if (closeslice && closeslice.length)
            closeslice = " " + closeslice;
        if (!hasFocused)
            strStart = strStart + closeslice + closer + suffix;
        else
            strEnd = strEnd + closeslice + closer + suffix;
    }
    $(this).insertRoundCaret(strStart + prepend, strEnd, strReplace);
}

这些块更改可以满足您的需要,但可能会破坏其他情况!这意味着您可能需要基于if的条件逻辑(标记名==“颜色”)


这些块更改可以满足您的需要,但可能会破坏其他情况!这意味着您可能需要基于if的条件逻辑(标记名==“颜色”)


建议:使用
$.extend
方法而不是定义多个变量。建议:使用
$.extend
方法而不是定义多个变量。
    if (hasFocused) {
        strEnd = strEnd + param + "=" + props[param];
        continue;
    }

    if (!hasFocused) {
        strStart = strStart + param + "=" + props[param];
        if (param == focusprop) {
            focusing = true;
            hasFocused = true;
        }
    }

    if (focusing) {
        //strEnd = strEnd + '"';
        focusing = false;
    } else {
        //strStart = strStart + '"';
    }