我正在阅读XML文档,并希望找到特定名称的第一个标记,并用不同的标记和内容替换该实例。我正在使用find和first,但是replaceWith调用并没有取代它。
$(storyXML).find('oldTag').first().replaceWith('<newTag>text</newTag>') ;
});
find找到多个oldTags,第一个返回第一个,replaceWith什么都不做。在搜索Stack Overflow后,我甚至尝试使用以下方法替换所有这些:
$(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);
答案 0 :(得分:3)
你试过https://api.jquery.com/jQuery.parseXML/吗?有时jQuery会对字符串或DOM对象进行操作,但有时候jQuery会对对象进行操作。