IE7 / 8 не анализирует вновь созданный объект jQuery - PullRequest
1 голос
/ 03 февраля 2012

Хорошо, допустим, у меня есть строка:

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);

Как только я это сделаюЯ хотел бы найти значение идентификатора узла:

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 я ничего не получаю .. an (пустая строка) ..

Кто-нибудь знает, почему это происходит ..?

Вот скрипка для работы и устранения неполадок:

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

Ответы [ 2 ]

3 голосов
/ 03 февраля 2012

Используйте jQuery.parseXML перед созданием объекта jQuery для создания действительного документа 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();
0 голосов
/ 03 февраля 2012

Вам нужна функция $ .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/ для дополнительной информации и примеров.

Надеюсь, это поможет!-Тед

Черт возьми, видел, как кто-то бил меня к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...