Jquery在IE9解释xml多出一个XML声明
Jquery在创建标签元素的语法为:
$('<标签>');在高级浏览器中,会正确执行,但在IE9等浏览器中,会被解析为xml文件,并带上xml声明:
1. 浏览器不认识的空标签时,如:
$('<otherTags>')[0].outerHTML; $('<otherTags/>')[0].outerHTML;会被JQuery误认为是xml文件:
<?XML:NAMESPACE PREFIX="PUBLIC" NS="URN:COMPONENT"/> <othertag></othertag>
遇到这种情况时,我们可以在空标签元素外包一个<html>,如
$('<html><otherTag>')[0].outerHTML; $('<html><otherTag/></html>')[0].outerHTML;可以正确解析:
<othertag> <othertag></othertag>
2.标签中包含xmlns属性时,如:
$('<otherTags xmlns="jabber:client">content</otherTags>')[0].outerHTML;也会被JQuery误认为是xml文件:
<?XML:NAMESPACE PREFIX="[default] jabber:client" NS="jabber:client" /> <othertags xmlns="jabber:client">content</othertags>这时如果再简单的在标签外套一个html标签已经行不通了,我们只能曲线救国,那就是在创建时去掉xmlns属性,然后使用attr函数再追加上这个属性:
var tag = $('<otherTags>content</otherTags>'); tag.attr({xmlns:'jabber:client'}); console.log(tag[0].outerHTML);控制台打印结果正确结果:
<othertags xmlns="jabber:client">content</othertags>
相关推荐
与卿画眉共浮生 2020-10-14
xiyang 2020-08-21
XGQ 2020-07-04
Andrewjdw 2020-05-29
Yakamoz 2020-05-26
行吟阁 2020-05-18
88491874 2020-04-30
方志朋 2020-05-30
spring艳 2020-05-16
hqulyc 2020-05-05
baijinswpu 2020-07-29
leonranri 2020-07-26
zhongliwen 2020-07-05
麋鹿麋鹿迷了路 2020-07-05
zengyu00 2020-07-05
CoderBoy 2020-06-28
whbing 2020-06-28
绝望的乐园 2020-06-27