jquery:用文本和html的混合替换文本节点

时间:2015-11-13 18:56:07

标签: javascript jquery html

我有多个文本节点,我想用html替换其中的一些文本:

    <pre>{
       "data": [
          {
             "source": "<a href=www.e.com>e.com</a>",
             "created_time": "2015-11-13T06:16:09+0000",
             "id": "913680432051814"
          },
          {
             "source": "<a href=www.e.com>e.com</a>",
             "created_time": "2015-11-13T06:16:02+0000",
             "id": "913680355385155"
          },
          {
             "source": "<a href=www.e.com>e.com</a>",
             "created_time": "2015-11-13T06:16:00+0000",
             "id": "913680332051824"
          }
</pre>

我想将<a>标记添加到ID号。

我在尝试:

x=$("pre")
  .contents()
  .filter(function() {
    return this.nodeType === 3
  });

trying to replace on any element. i am trying with x[0]

rep =  x[0].data.replace(//\"id\": \"(.*)\",/, "/\"id\": \"<a href=\"https:example.com/\$1\">$1</a>\"")

然后尝试

x[0].replaceWith(rep)

它说x [0] .replaceWith不是函数

那么如何用html元素替换文本?

1 个答案:

答案 0 :(得分:0)

我尝试了下面的工作。使用$(this)工作。

x=$("pre")
  .contents()
  .filter(function() {
    return this.nodeType === 3
  })
.each(function(){
 rep =  this.data.replace(//\"id\": \"(.*)\",/, "/\"id\": \"<a href=\"https:example.com/\$1\">$1</a>\"")

  $(this).replaceWith(rep);  //when i used $(this) it worked.
})