JQuery скрипты в ответе Ajax не работает - PullRequest
0 голосов
/ 14 января 2009

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

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

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

Ответы [ 4 ]

2 голосов
/ 14 января 2009

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

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

1 голос
/ 14 января 2009

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

Не забудьте добавить type = "text / javascript" в тег сценария, чтобы убедиться, что он ничего не нарушает.

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

  $("#somediv").load('some.html',{ /* empty data arg */ },function(){
    $("#p1").html('ABC');
  });
0 голосов
/ 14 января 2009

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

0 голосов
/ 14 января 2009

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

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

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

$ ( "# p1") текст ( 'ABC');.

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