我正在阅读一个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需要对象。