проблема с IE, который удаляет новые строки из $ ("# content"). text () - PullRequest
3 голосов
/ 01 сентября 2010

проблема с IE, который удаляет новые строки из $ ("# content"). Text ()

HTML Code

<div id="content">
<p>hello world</p>
<p>this is a paragraph</p>
</div>

jQuery Code

alert($("#content").text()); 

результат (IE) IE удаляет новую строку (\ n), как я могу решить эту проблему?

hello worldthis is a paragraph

результат (FF)

hello world
this is a paragraph

взгляните: http://jsfiddle.net/vB3bx/

Ответы [ 4 ]

2 голосов
/ 01 сентября 2010

Работает нормально, если вы используете свойство innerText div. Попробуйте заменить

alert($("#content").text());

с

alert( document.getElementById( "content" ).innerText );
2 голосов
/ 19 ноября 2010

Internet Explorer нормализует все символы пробела и новой строки в символ ПРОБЕЛ.Насколько я знаю, с этим ничего не поделаешь.

Кстати, похоже, что бета-версия IE9 изменила это поведение.Я получаю новые строки в нем.

1 голос
/ 11 марта 2013

Я почти уверен, что Симе Видас прав. Я пробовал почти все, и все, что я пытаюсь (innerText, innerHTML, jQuery методы, TextRange, элемент клонирования и помещая его в предварительный элемент и т. Д. И т. Д.), Удаляется пустое пространство. Я предполагаю, что IE просто удалит его при любом типе вызова. Он явно присутствует во время рендеринга, так как пробел: pre покажет его, но извлечение его через javascript всегда удалит пробел, за исключением содержимого pre и textarea.

Это поведение изменилось в IE9. Единственным решением в более старых версиях было бы заменить символы новой строки на теги
(или что-то еще, точку с запятой и т. Д.) На сервере, если это возможно, и затем вернуть их обратно в \ n в javascript после получения текстового содержимого.

0 голосов
/ 01 сентября 2010

Не уверен, что вы найдете решение с использованием text (), если учтите следующее:

Из-за вариаций в парсерах HTML в разных браузерах текст возвращенные могут варьироваться в новых строках и другой пробел.

при http://api.jquery.com/text/

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