Я хочу вставить большой блок HTML в существование ранее <td>
. Я использую этот метод:
$("td#content").html(LOTS_OF_HTML_CODE_HERE);
Но это не работает. Я - новичок, существует много кавычек и '
в блоке HTML, который, кажется, повреждает его. Каков корректный метод для того, чтобы сделать это?
Я бы предложил объединить html в одну строку ... вот так.
htmlStr = "";
htmlStr += "<p>some paragraph";
htmlStr += "<p>another paragaraph</p>";
$("#content").html(htmlStr);
таким образом вы можете увидеть, где ваш html ломается, и это добавляет большую удобочитаемость содержимому, созданному javascript.
Также ...
если в этом TD есть контент, который вы хотели бы сохранить, я бы использовал метод jquery append ()
.
jquery-документация - ваш лучший друг!
Я бы поместил весь этот HTML-код в div согласно следующему правилу:
тогда, когда это сделать:
$("td#content").html($("#myHTML").html());
В чем может быть проблема - это разрывы строк. Если у вас есть строка (заключенная в "" или ''), вы обнаружите, что разрывы строк "сломают" ваш код ... поэтому вам придется поместить весь HTML в одну строку.
Стефан прав, но, чтобы ответить на ваш вопрос кавычками, не забывайте избегать всего, что в противном случае могло бы его сломать, поэтому, если у вас есть html (" ... etc ... ");
он должен быть html (" ... etc ...");
, чтобы двойные кавычки не читались буквально.
Вам, вероятно, следует создавать свои элементы с помощью jquery, а не в виде большой строки. У вас нет уверенности в правильности dom, если вы просто используете большую строку, и ее практически невозможно отладить или изменить.
Это похоже на создание xml вручную. Просто это не лучший способ сделать это.
Javascript не имеет хорошей поддержки многострочных строк или синтаксиса HEREDOC, но есть несколько обходных путей.
Добавьте обратную косую черту "\" в конец каждой строки, чтобы механизм сценария знал, что вы продолжаете переход к следующей строке, не закончив:
<script>
var my_html = '\
<div id="my-div">\
<span>Name:</span> Your Name\
</div>\
';
</script>
Используйте хак XML CDATA ( http: //mook.wordpress .com / 2005/10/30 / multi-line-strings-in-javascript / ):
<script>
var my_html = (<r><![CDATA[
<div id="my-div">
<span>Name:</span>Your Name
</div>
]]></r>).toString();
</script>
If quotes are breaking your code, try this...
$("td#content").html("my link");
The quotes are not being escaped. Just add a backslash before any quotes, double or single within your HTML code. That should do it. ;)
Если он поступает из ссылку, вы, вероятно, захотите сделать это с помощью AJAX:
$("#YOUR_ELEMENT").load("THE_CONTENT_TO_LOAD");
Однако имейте в виду, что если вы пытаетесь получить HTML с сайта в другом домене, вам нужно будет использовать прокси-серверы и все такое. ..вид вне рамок вопроса.