jquery的insertAfter和append在IE下总是提示类型不匹配,但是在FF、opera、Chrome下都正常。

IE6、7、8都有问题,其他浏览器都可以运行。
我是用jquery操作xml的,前面有var jq = $.noConflict();

var newnode = jq('<item></item>');
jq(newnode).attr({"url":url,"name":name});
var length = jq(xmldoc).children().children().length;
if(length !=0)
{
jq(newnode).insertAfter(jq(xmldoc).children().children().eq(length-1));
}
else
{
jq(xmldoc).children().each(function()
{
jq(this).append(newnode);
});
}

把jq方法换成下面的方法试试。

//String转换至xml
function stringToXml(str){
if(str == null){
return null;
}

if(str!=undefined){
var out;
try{
var xml = ($.browser.msie)?new ActiveXObject("Microsoft.XMLDOM"):new DOMParser();
xml.async = false;
}catch(e){ throw new Error("XML Parser could not be instantiated") };
try{
if($.browser.msie) out = (xml.loadXML(str))?xml:false;
else out = xml.parseFromString(str, "text/xml");
}catch(e){ throw new Error("Error parsing XML string") };
return $(out);
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜