getElementById不适用于IE中的XML

时间:2016-02-01 07:07:30

标签: javascript html xml dom

我有xmlDoc,类似于DOM结构。

<Template>
<Function>
   <parameter id="prm_1_1_1"></parameter>
</Function>
</Template>

当我使用xmlDoc.getElementById('prm_1_1_1')时,它在chrome中运行良好并返回xml节点,但在IE11中提供undefined

xmlDoc.querySelector('prm_1_1_1')也会在IE中返回undefined

1 个答案:

答案 0 :(得分:1)

您可以使用querySelector()和属性选择器

&#13;
&#13;
var string = '<Template><Function><parameter id="prm_1_1_1"></parameter></Function></Template>';
var xmlDoc = $.parseXML(string);

console.log('doc', xmlDoc);
r1.innerHTML = 'Doc: ' + xmlDoc;

var idle = xmlDoc.getElementById('prm_1_1_1');
r2.innerHTML = 'By Id: ' + idle;
console.log('id', idle);

var attrel = xmlDoc.querySelector('[id="prm_1_1_1"]');
r3.innerHTML = 'By Attr: ' + attrel;
console.log('attr', attrel);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="r1"></div>
<div id="r2"></div>
<div id="r3"></div>
&#13;
&#13;
&#13;

演示:Fiddle