Почему я не могу добавить <br /> с JQuery .html? - PullRequest
13 голосов
/ 01 февраля 2010

Почему этот код работает:

$('div.error_container').html('<div class="error">No more foo allowed</div>');

Но этот код вызывает ошибку:

$('div.error_container').html('<div class="error">No more foo allowed<br /></div>');

Я пытался поместить <br /> до и после тега </div>, та же ошибка. Я пытался изменить его с <br /> на <br>. Chrome всегда говорит следующее в инспекторе:

Uncaught SyntaxError: Unexpected token ILLEGAL

Ответы [ 4 ]

16 голосов
/ 01 февраля 2010

Попробуйте разбить его на цепочку:

var $div = $('<div class="error"></div>').html('No more foo allowed')
                                         .append('<br />');
$('div.error_container').html($div);
3 голосов
/ 01 февраля 2010

Я попробовал следующее SSCCE , и оно работает безупречно в IE, FF, Safari, Opera и Chrome (все самые последние версии).

Таким образом, ваша проблема, вероятно, связана с объявленным вами типом документа или использованием старой версии Chrome.

<!doctype html>
<html lang="en">
    <head>
        <title>SO question 2173556</title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                $('#foo').html('<div>foo<br>foo</div>');
                $('#bar').html('<div>bar<br/>bar</div>'); // Yes, that's illegal in HTML strict. Just to test :)
            });
        </script>
        <style>

        </style>
    </head>
    <body>
        <div id="foo"></div>
        <div id="bar"></div>
    </body>
</html>
3 голосов
/ 01 февраля 2010

Это прекрасно работает для меня:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
  $('div.error_container').html('<div class="error">No more foo allowed<br /></div>');
});
</script>
</head>
<body>
<div class="error_container">
</div>
</body>
</html>

в Chrome и Firefox. Какую версию jQuery вы используете?

На заметке <br /> XML (включая XHTML), а не HTML. HTML это <br>.

0 голосов
/ 01 мая 2018

У меня тоже была похожая проблема, не уверен, что она актуальна. Я делал c # mvc для cms.

Итак, у меня есть некоторые html-данные от пользователя, и я отображаю их, используя "@Html.Raw(Modal.Content)"

Внутри Modal.Content была <br />, и у меня возникла проблема с добавлением этого содержимого в html с помощью jquery .html("@Html.Raw(Modal.Content)")

Но в итоге проблема не была <br />

Есть невидимый \n, поэтому я сделал .html("@Html.Raw(Modal.Content).Replace("\n", "")"), и проблема была решена. <br> остался в моем контенте и работает как положено.

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