正则表达式替换方法不会从小书签添加新内容

Regex replace method doesnt add new content from bookmarklet

我正在尝试构建一个小书签,在字典(已解析的 json)之后的文本中添加一些元素。

为此,我使用了一个正则表达式对象和一个替换方法来添加新元素,但它没有添加任何东西。在脚本的各个阶段,我正在查看它是否正常工作(通过 firebug 中的控制台进行调试)所以我看到除了替换之外一切正常。

这是代码:

jj = jQuery.noConflict()
jj ->
  escapedStr = (string)->
    string.replace(/([.?*+^$[\]\(){}|-])/g, "\")

  addTags = (pjson) ->
    for i in [0...jj(".postauthor").length]
      name = jj(".postauthor").eq(i).text()
      if pjson.hasOwnProperty(name)
        texto = jj(".postauthor").eq(i).parent().next().find(".postbody:first").text()
        for x in pjson[name]
          escCon = escapedStr x['concept']
          #console.log escCon
          change = new RegExp(escCon, "ig")
          texto.replace(change, "<span class='concept'>#{escCon}</span>")

  jj.ajax({
    crossOrigin: true
    url: "/something.json"
    datatype: "json"
    success: (data) ->
      addTags jj.parseJSON(data)
  })

小书签的代码是这样的:

if (!($ = window.jQuery)) {
    script = document.createElement( 'script' );
  script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
  script.onload=releasetheKraken;
  document.body.appendChild(script);
} 
else {
    releasetheKraken();
}

function releasetheKraken() {
    var jsCode = document.createElement('script');
  jsCode.setAttribute('src', 'https://something/above_code.js');
  document.body.appendChild(jsCode); 
}

一切正常,但函数 addTags 中的最后一个替换。我是新手,所以我不知道我尝试的事情是否可行。你能给我一些建议吗?提前谢谢你。

最后我解决了这个问题,但我不明白为什么我的第一种方法不起作用。

我所做的是链接一些注入所需元素的 .html() 方法……比如用编辑过的元素替换整个大父元素:

      texto.html(texto.html().replace(change,"<span class='concept'>#{x['concept']}</span>"))

似乎替换,在打开这个问题的代码中,只是替换内存中的东西,而不是在真实中注入任何东西HTML。