1

我在 jQuery 中过滤时遇到了一些问题:

<div>content: content: {"bla":"test","IMPORTANT"}</div>

  <button>Remove</button>
<script>
    $("button").click(function () {
      $("div").remove(":contains('content: content: {\"bla\":\"test\",\"')");
    });

</script>

所以,onClick整个div都被删除了,我只想删除指定的部分,怎么办?

谢谢!

4

4 回答 4

2

如果要删除 div 中的内容,请选择 div,然后使用 将其内容设置为空字符串text()

$("div").text("");

编辑:

显然你想保留部分文本。为此,您可以使用正则表达式来捕获您想要的文本。以马克的回答为基础:

$div = $("div");
str = $div.text()
str = str.replace(/.*?,"(.*)"\}$/, "$1");
$div.text(str)

这是一个jsfiddle

于 2012-09-07T20:54:45.163 回答
2

您将需要对该 div 的内容进行一些字符串操作。然后用你的结果更新 div 的文本。例子:

$div = $("div:contains('content: content: {\"bla\":\"test\",\"')")
str = $div.text()
str = str.replace(/your regex goes here/, "")
$div.text(str)
于 2012-09-07T21:00:33.387 回答
1

如果 div 的内容总是以相同的方式出现,下面的代码将成为一个解决方案

    $("button").click(function () {
      var string = $("div").text();
        var arr = string.split(":");
        var arr1 = arr[3].split(",");
        var string1 = (arr1[1].replace("\"","")).replace("\"}","");
    $("div").text(string1);
    });

查看Fiddle
EDITED FIDDLE 中的演示:http: //jsfiddle.net/2Gcy9/1/

于 2012-09-07T21:21:03.210 回答
0
 $("button").click(function () {

  $("div:contains('content: content: {\"bla\":\"test\",\"')").text("");

 });
于 2012-09-07T20:55:20.583 回答