Потеря новых строк в содержимом div в IE 7 - PullRequest
2 голосов
/ 10 марта 2009

Я пытаюсь разделить внутренний текст элемента div на новые строки в источнике для него. Это прекрасно работает с:

$('div').text().split("\r\n|\r|\n")

Но это не удается в IE 7 из-за удаления строк. JQuery 1.3.2, кажется, не виноват, так как я также попробовал оба:

$('div')[0].innerText.split("\r\n|\r|\n")

и

$('div')[0].innerHTML.split("\r\n|\r|\n")

Ни одна из вышеперечисленных работ не работает, если я изменяю div на pre.

Похоже, что новые строки - это когда источник анализируется в DOM. :( Это так? Нет ли способа получить их с помощью javascript?

Ответы [ 3 ]

2 голосов
/ 10 марта 2009

Попробуйте разделить на "\n" вместо "\r\n".

Чтобы сделать и то, и другое, рассмотрим разбиение по шаблону "\r?\n".

1 голос
/ 10 марта 2009

IE теряет символы новой строки в содержимом элемента, кроме:

  • в preplaintext, не то, что когда-либо использовалось в этом веке)
  • в textarea, где также добавляются ложные символы, которые не учитываются в его собственных механизмах подсчета символов

Однако, независимо от этого, это не сработает:

раскол ( "\ г \ п | \ г | \ п")

JavaScript String.split, в отличие от Java, принимает простую строку-разделитель, не шаблон регулярного выражения.

1 голос
/ 10 марта 2009

Символы новой строки являются пробелами и обычно не сохраняются. Они означают то же самое, что и пробел.

...