jQuery .html()方法的替代方法?

问题描述:

我目前正在使用手机开发单页应用程序。我想要实现的是最初解析XML文件并存储内容以供进一步使用。jQuery .html()方法的替代方法?

目前一切工作正常,但有一个主要的问题:

在我的XML文件中,有一个包含HTML格式文本内容的标签。例如:

<textfield> <h1>Title</h1> Content </textfield> 

我目前做的是通过jQuery AJAX调用来加载我的XML文件,然后使用HTML()方法来检索我的文本字段的html:

this.description = $(Obj).find("textfield").html(); 

在谷歌Chrome,火狐和Android这工作正常。该html存储一个可以稍后添加到我的对象。但是,在Safari上,因此在Iphone设备上,html()不起作用。现在我正在寻找解决方法。我当然不想使用text(),因为我的格式将被忽略。

编辑:我的Ajax调用:

$.ajax({ 
    type: "GET", 
    url: Controller.baseURL+"/"+name+".xml", 
    async: false, 
    timeout:3000, 
    dataType: "xml", 
    success: function (data) { 
     alert("succ"); 
     xml = data; 
    }, 
    error: function() { 
     alert('error!'); 
    } 
}); 

也许有人可以帮助我。

在此先感谢

搜索了几个小时后,我终于找到了我的答案在这里:

https://*.com/a/25789924/3566334

似乎

在IE 9,10和11,Safari 7.0和Opera 12,doc中的节点既没有innerHTML字段也没有xml字段

我按照使用XML Serializer的建议,它的作品就像一个魅力!

var parser = new DOMParser(); 
var parsed = parser.parseFromString(yourXMLStringLoadedViaAjax, 'text/xml'); 
var textfieldConetent = parsed.querySelector('textfield').innerHTML; 
+0

看来它不适合我。如果你看看我的ajax调用,我的xml对象已经是一个dom元素。现在,如果我正在做alert(xml.querySelector('textfield')。innerHTML);它包含Chrome和Firefox上的内容,但在Safari上未定义。 – Dede1989 2014-10-05 12:50:29

+0

嘿,@ Dede1989。你能否检查'parsed.querySelector('textfield')。innerHTML;'与其他节点,而不是'textfield'? – 2014-10-05 17:27:54