Вывод / запись строки во встроенном анонимном элементе - JQuery - PullRequest
0 голосов
/ 06 августа 2011

У меня действительно простая проблема, но по какой-то причине я не могу найти решение.Страница выбирается с помощью ajax.

Проблема в том, что у меня есть строка JavaScript, и я хочу записать в данный элемент (без необходимости выбора jquery), например:

<script type="text/javascript">var myString = "Test";</script>
<h1><script type="text/javascript">myString</script></h1>

Я пытаюсь использовать document.write(myString), но он перезаписывает все содержимое страницы.

Ответы [ 2 ]

1 голос
/ 06 августа 2011

Прекрасно работает document.write для вывода контента во время загрузки страницы:

<div id="asdf" title="Headline 1" name="Headline 2"></div>

<h1>
    <script type="text/javascript">document.write($('#asdf').attr('title'));</script>
</h1>

<h2>
    <script type="text/javascript">document.write($('#asdf').attr('name'));</script>
</h2>

(Примечание: код использует только селекторы для получения значений для записи.)

Демо: http://jsfiddle.net/Guffa/4Cxb3/

Если вся страница заменена, это означает, что вы пытаетесь написать контент, когда страница полностью загрузилась.Если документ больше не открыт для записи, он откроет новый документ для записи.

1 голос
/ 06 августа 2011

document.write() может использоваться встроенным на странице во время загрузки исходной страницы.Если вы используете его после того, как страница уже загружена (что происходит, когда выполняется вызов ajax), он очистит всю страницу, а затем напишет новую страницу.Таким образом, вы не можете использовать его для изменения существующего содержимого.

Единственный способ изменить HTML после загрузки страницы - использовать JavaScript для манипулирования DOM.Это почти всегда будет включать использование селекторов для поиска нужных объектов на странице для изменения.Итак ... Я не знаю, почему вы говорите, что хотите сделать это с помощью jQuery select, поскольку это правильный способ сделать это.

Я бы предложил что-то вроде этого:HTML:

<h1 id="viewTitle"></h1>
<h2 id="viewOutput"></h2>

Javascript (запускается из обработчика успешных вызовов ajax после размещения содержимого на странице):

jQuery("#viewTitle").html(jQuery.i18n.prop('view_title'));
jQuery("#viewOutput").html(jQuery.i18n.prop('view_output'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...