将体点替换为空格

时间:2012-02-26 02:31:50

标签: jquery replace

$('body, html').replace(".", " ");

我试了一下,但是这个没用。我想在整个页面中将点替换为空格。

3 个答案:

答案 0 :(得分:1)

尝试replaceAll功能。您希望确保替换所有元素而不仅仅是一个元素。

更新:replaceText可用于替换元素中的所有文本。

答案 1 :(得分:0)

jQuery是否有.replace()方法?您似乎试图在jQuery对象上使用String.replace()

您可以尝试以下方式:

var $body = $("body");
$body.html( $body.html().replace(/\./g, " ") );

或者,如果您想要更多选择元素,请仅说明具有某个类的元素:

$(".aCertainClass").html( function(i, oldVal) {
   return oldVal.replace(/\./g, " ");
});

请注意,.replace()正在使用设置了g标记的正则表达式,因此它会进行全局替换,而不是仅替换第一个匹配项。

另请注意,如果替换正文的html,它会有效地删除并重新创建所有元素,因此它会终止已经绑定的任何事件处理程序 - 所以在附加处理程序之前执行此操作。

答案 2 :(得分:0)

如果我找到了你,你只想把点改成文字。

This function at http://jsfiddle.net/KmZ5A/应该做你需要的事情:

  function searchDOM(element) {
      var items = [];
      items.push(element);
      var item;
      while (item = items.pop()) {
          if (typeof item != 'undefined' && item.nodeValue && item.nodeValue != null) {
              item.nodeValue = item.nodeValue.replace(/\./g,' ');
          }
          for (var key in item.childNodes) {
              var child = item.childNodes[key];
                  if (typeof child != 'undefined' && 
                      (child.nodeType == 1 || child.nodeType == 3)) {
                      items.push(child);
                 }
          }
          if (item.nodeName == "IFRAME") {
              if (!item.src) items.push(item.contentDocument.body);
          }
      }
      return null;
  }
  searchDOM(document.body);