Скрипты jQuery в ответе Ajax не работают

Я использую функцию jQuery $ .load () для получения контента с сервера. загруженный контент содержит это:

<p id = "p1">123</p>
<script>   
 $(document).ready(function(){
      $('#p1').html('ABC');
      alert($('#p1').html());
 });
</script>

изменение текста абзаца на «ABC» не влияет на страницу, но в alert () отображается «ABC».

Ха-ха ... Я набрал те же две вещи, что и ответ, пока вы комментировали. Не хотел заниматься плагиатом, с радостью добавлю к вам репутацию, если вы действительно этого хотите :).

rz. 14.01.2009 11:34

Не могли бы вы немного уточнить свой вопрос?

rz. 14.01.2009 11:49
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
2
1 298
4

Ответы 4

Я думаю, что ваш селектор неверен. $ ('# p') выберет элементы (хотя в принципе должен быть только один, но отдельный) с идентификатором «p». Не все

элементы. Я думаю, вы имеете в виду либо $ ('p'), либо $ ('# p1').

Селектор «#p» ищет элемент DOM с идентификатором «p» - и здесь ничего подобного нет.

Правильный селектор - "# p1".

Также, чтобы установить текст в узле, используйте text (): (см. текст (val) в http://docs.jquery.com/Manipulation)

$("#p1").text('ABC');

Э, разве документ уже не будет «готов», когда контент будет загружен? Действительно ли срабатывает предупреждение? Если это так, я согласен с arnab_deka: используйте метод .text ().

если документ готов уже был и прошел, то любые функции, готовые к документу, проанализированные в будущем, будут немедленно выполнены

redsquare 14.01.2009 13:41

Если вы загружаете его через .load (), избавьтесь от окружающего $ (document) .ready (); немного. В этом нет необходимости, поскольку модель DOM уже загружена. Ваш сценарий должен работать так, как вы ожидаете.

Не забудьте добавить type = "text / javascript" в свой тег скрипта, чтобы убедиться, что он ничего не сломает.

Если у вас все еще есть проблемы, попробуйте просто использовать функцию обратного вызова .load (), например.

  $("#somediv").load('some.html',{ /* empty data arg */ },function(){
    $("#p1").html('ABC');
  });

Другие вопросы по теме