Javascript 从不在IE中工作的XML读取.text()
您好,我有这段代码,除了IE中由Javascript 从不在IE中工作的XML读取.text(),javascript,jquery,Javascript,Jquery,您好,我有这段代码,除了IE中由.text()方法填充的变量外,所有代码都在FF中工作 示例代码如下所示: <script language="javascript" type="text/javascript"> $(document).find('f').each(function(){ var ff= $(this).attr("m"); var fmsg = $(this).text();
.text()
方法填充的变量外,所有代码都在FF中工作
示例代码如下所示:
<script language="javascript" type="text/javascript">
$(document).find('f').each(function(){
var ff= $(this).attr("m");
var fmsg = $(this).text();
alert(ff + ' - ' +fmsg);
});
</script>
$(文档)。查找('f')。每个(函数(){
var ff=$(this.attr(“m”);
var fmsg=$(this.text();
警报(ff+'-'+fmsg);
});
数据(文件):
你好
再见
为什么警报没有显示“1-hi”和“2-bye”,而是显示fmsg
变量的空值。有什么建议吗?下面是一个工作示例:jQuery#text方法似乎并不准备从我所看到的XML中收集文本内容。(不过,我很乐意接受指点)
与往常一样,W3兼容浏览器和IE之间存在差异。W3兼容浏览器公开节点的textContent
属性,而IE公开节点的innerText
属性
嗯,
FK我不会依赖于jQuery处理浏览器试图正确解析为HTML的XML文档——在尝试应用各种浏览器不兼容修复程序时,它可能会混淆。试着用jsFiddle来解析它,这个例子对我来说很有用,这也表明它是你浏览器的解析器出了问题。它在IE中不起作用,只是看起来像。
<data>
<f m="1">hi</f>
<f m="2">bye</f>
</data>
text: function( text ) {
if ( jQuery.isFunction(text) ) {
return this.each(function(i) {
var self = jQuery( this );
self.text( text.call(this, i, self.text()) );
});
}
if ( typeof text !== "object" && text !== undefined ) {
return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
}
return jQuery.text( this );
}