尝试.replace()没有成功

Nat*_*pos 0 javascript string jquery

我有一些HTML代码,如下所示:

<li><a href="#" class="lstItem">Testing jQuery [First Bracket]</a></li>
<li><a href="#" class="lstItem">Loving jQuery [Second one]</a></li>
Run Code Online (Sandbox Code Playgroud)

我试图用什么都不替换括号内的内容onLoad,如下所示:

var item = $(".lstItem").text();
var match = item.match(/\[(.*?)\]/);
item = item.replace(match[0], "");
Run Code Online (Sandbox Code Playgroud)

但没有变化.怎么了?怎么纠正这个?


在使用了jimbojw的建议后,我得到了Uncaught ReferenceError: text is not defined这个特定的一行:

oldtext = $item.text,
Run Code Online (Sandbox Code Playgroud)

jim*_*mbo 8

item是包含字符串的变量,而不是指向文字文本的指针.如果要更改文本,则必须再次设置它$(".listItem").text(item)

编辑 - 预测下一个问题

您将遇到的下一个问题是所有文本都设置为相同的东西.所以你真正想做的事情可能是这样的:

$(".lstItem")
  .each(function(index, item) {

    var
      $item = $(item),
      oldtext = $item.text(),
      match = oldtext.match(/\[(.*?)\]/),
      newtext = oldtext.replace(match[0], '');

    $item.text(newtext);

  });
Run Code Online (Sandbox Code Playgroud)