Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не пашет html() (https://javascript.ru/forum/jquery/3570-ne-pashet-html.html)

ageent.ua 03.05.2009 23:35

Не пашет html()
 
Не работает функция html("") если в строчке будет перевод строки.
Работает
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){
    $("div").html("<span class='red'>Hello <b>Again</b></span>");
  });
  </script>
  <style>
  .red { color:red; }
  </style>
</head>
<body>
  <span>Hello</span>
  <div></div>
  <div></div>
  <div></div>
</body>
</html>

Не работает
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){
    $("div").html("<span class='red'>Hello 
<b>Again</b></span>");
  });
  </script>
  <style>
  .red { color:red; }
  </style>
</head>
<body>
  <span>Hello</span>
  <div></div>
  <div></div>
  <div></div>
</body>
</html>


Почему? Какие есть методы решения?

Riim 04.05.2009 00:44

Перевод строки обозначается символами \r\n
Только странно как то, в алерте работает а в innerHTML нет:
var str = '<span class="red">Hello\r\n<b>Again</b></span>'
alert(str);
div1.innerHTML = str;


Остается только тег br.

x-yuri 04.05.2009 02:22

Цитата:

Только странно как то, в алерте работает а в innerHTML нет
http://javascript.ru/forum/jquery/33...html#post16212
но самый главный вопрос, имхо, это зачем вставлять \r\n в строку? Может речь о том, как продолжить длинную строку на следующей строке? Тогда в js это делается так:
var s = 'line 1' +
    'line 2';

Riim 04.05.2009 02:31

Цитата:

Сообщение от x-yuri
но самый главный вопрос, имхо, это зачем вставлять \r\n в строку?

Там тег span.

Цитата:

Сообщение от x-yuri
это делается так:

Можно проще:
var s = 'line 1\
line 2';


Только компрессоры на этом тупят.

x-yuri 04.05.2009 02:34

Цитата:

Там тег span
ну и что?

Riim 04.05.2009 02:48

span должен (вроде как) отображать \r\n так же как и <br />.
Если вставлять \r\n на сервере то он (span) так и делает.

x-yuri 04.05.2009 02:53

Цитата:

span должен (вроде как) отображать \r\n так же как и <br />.
O_o откуда такая информация? На всякий случай проверил в html, xhtml, ie 7, opera 9, ff 3 следующий код:
<div><span>a
b</span></div>

через пробел выводится :yes:

Riim 04.05.2009 03:01

Цитата:

Сообщение от x-yuri
через пробел выводится

Зашибись. Совсем недавно с этим сталкивался и тупил. И вот сейчас опять. С textarea путаю.

ageent.ua 04.05.2009 10:28

Как я люблю php
html('<?php echo preg_replace("/\r|\n/is", "","d в
 в")?>')

x-yuri 04.05.2009 22:50

pan zboczeniec?
html('d в'+
     ' в')

или
html('d в\
 в')


Часовой пояс GMT +3, время: 13:04.