我正在阅读一个XML文档,希望找到特定名称的第一个标记,并用不同的标记和内容替换该实例。我正在使用find和first,但是replaceWith调用没有替换它。

$(storyXML).find('oldTag').first().replaceWith('<newTag>text</newTag>') ;
  });

查找是查找多个旧标记,第一个是返回其中的第一个,replaceWith不执行任何操作。在搜索堆栈溢出后,我甚至尝试使用以下方法替换所有堆栈溢出:
$(storyXML).find('oldTag').each(function() {
    $(this).replaceWith('<newTag>text</newTag>') ;
  });

但那也没什么用。我很感激你能提供的帮助!
编辑:此处正在分配StoryXML(试图简化发布代码,希望它仍然有意义):
var load = function () {
    var fn;

    fn = function (obj, init) {
        storyXML = obj.responseXML;
    };

    ajax("GET", this.url, null, fn);
};

编辑2:通过下面的jason的答案修复代码。为其他有这个问题的人发帖,却找不到像我这样的解决方法。
  var xmlDoc = $.parseXML( storyXML );
  var $xml = $( xmlDoc );
  $xml.find('oldTag').first().replaceWith('<newTag>stuff</newTag>');

  // if you want to keep the old XML string updated, need to do this step
  storyXML = (new XMLSerializer()).serializeToString(xmlDoc);

最佳答案

你试过吗?有时jquery会对字符串或dom对象进行操作,但有时jquery需要对象。

10-08 15:39