IE7 / 8没有解析新创建的jQuery对象

时间:2012-02-03 14:59:42

标签: jquery string internet-explorer

好的,我们说我有一个字符串:

var xmlString = '<main><id>5</id><name>test-string</name></main>';

然后我希望这个字符串的行为就像它是一个jQuery obj:

var xmlString = '<main><id>5</id><name>test-string</name></main>',
    xmlString = $(xmlString);

一旦我这样做,我想找到ID节点的值:

var xmlString = '<main><id>5</id><name>test-string</name></main>',
    xmlString = $(xmlString),
    findIdTest = xmlString.find('id').text(),
    filterIdTest = xmlString.filter('main').find('id').text();

我尝试了两种方法,

xmlString.find('id').text()

filterIdTest = xmlString.filter('main').find('id').text();

在FF,Chrome和IE9中,两种方法的结果总是 5

在IE7和IE8中,我什么也没得到。(空字符串)..

有谁知道为什么会发生这种情况......?

这是一个使用和排除故障的小提琴:

http://jsfiddle.net/ZmeVY/2/

2 个答案:

答案 0 :(得分:3)

在创建jQuery对象之前使用jQuery.parseXML来创建有效的XML文档。

http://api.jquery.com/jQuery.parseXML/

var xmlString = '<main><id>5</id><name>test-string</name></main>',
    xmlDoc = $.parseXML(xmlString),
    myObj = $(xmlDoc);

myObj.find("id").text();

答案 1 :(得分:0)

您正在寻找的是$ .parseXML()函数。

试试这个:

var xmlString = $.parseXML('<main><id>5</id><name>test-string</name></main>');
$xmlString = $(xmlString);
alert($xmlString.find('id').text());

有关详细信息和示例,请参阅http://api.jquery.com/jQuery.parseXML/

希望有所帮助! -Ted

很高兴见到有人打败了我。