Я бегу следующий JavaScript как в Firefox Developer Edition 38 и Internet Explorer 8 и 9.
console.log('+++++++++++++++++++++++++++++++');
console.log('jquery version = ' + $.fn.jquery);
var myHtmlString = "<!-- my comment -->" +
"<optgroup label='my label'>" +
"<option value='1'>option one</option>" +
"</optgroup>";
console.log($(myHtmlString));
console.log($(myHtmlString)[0]);
console.log($(myHtmlString)[1]);
console.log($(myHtmlString).length);
В Firefox, я получаю:
В IE, я получаю:
Так, очевидно, в Firefox комментарий HTML i s добавляется как элемент этого объекта, но в IE это не так. Почему это ведет себя так, есть ли ошибка, или есть ли другой способ создать этот объект?
ПРИМЕЧАНИЕ: Я пробовал $.parseHTML(myHtmlString)
, но он делает то же самое.
ОБНОВЛЕНИЕ: Этот ответ How does jQuery treat comment elements? обеспечивает возможное обходное решение.
Что такое '[object Object]' в журнале IE? Вы уверены, что это не ваш комментарий. –
@JonathanWood Посмотрите на отличный вывод '$ (myHtmlString) .length' – ceejayoz
Я не могу найти ссылку, но комментарии, созданные в javascript, не поддерживаются в IE, если я правильно помню, если они не созданы с помощью' document. createComment', и я не думаю, что jQuery использует это. – adeneo