首页 > 解决方案 > 如何在 jquery/js 中用 response.data 替换括号 [] 之间的文本?

问题描述

如何更改 [] 与 response.data 对象之间的字符串我的代码如下:

var template = "<%= escape_javascript(eval(UserSetting.find_by_user_id_and_setting_name(User.current_user_id, 'own_user_grid_'+ grid_id).value)) %>"

模板输出如下所示:

<body><p>DocType: [document_summarize_doctype]</p><b>Author ID: [document_author]</b></body>

我现在将在每次使用 this.document_summarize_doctype 构建内容时更改内容[document_summarize_doctype]

$j.each(response.data, function() {  $j('.own_content_overall').append('<div class="own_content">' + template + '<br><span style="border: 1px solid lightblue;"></div>');
          });

有什么帮助吗?

谢谢

标签: javascriptjqueryhtmlajax

解决方案


使用此功能,我前段时间在 SO 上找到了它,它不是我的,但它可以完成工作:

var substitute = function(str , sub )  {
    return str.replace(/\[(.+?)\]/g, function($0, $1) {
        return $1 in sub ? sub[$1] : $0;
    });
};

console.log(substitute('your are a [type_of_person]',{ type_of_person : 'good boiii'}))

// output : your are a good boiii

您的代码将是这样的:(如果括号中存在“item”键,则字符串将被替换)

$j.each(response.data, function(item) {
     $j('.own_content_overall').append(substitute('<div class="own_content">' + template + '<br><span style="border: 1px solid lightblue;"></div>', item));
});

推荐阅读