Ajax响应中的jQuery脚本不起作用

时间:2009-01-14 08:21:22

标签: jquery ajax

我正在使用jQuery $ .load()函数从服务器获取内容。 加载的内容包含:

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

将段落文本更改为“ABC”不会影响到页面,但alert()会显示“ABC”。

4 个答案:

答案 0 :(得分:2)

我认为您的选择器不正确。 $('#p')将选择元素(虽然原则上应该只有一个,但这是分开的),ID为“p”。并非所有

元素。所以我认为你要么意味着$('p')要么意味着$('#p1')。

答案 1 :(得分:1)

如果你在via .load()中加载它,那就去掉周围的$(document).ready();位。由于DOM已经加载,因此没有必要。您的脚本应该按照您的预期运行。

不要忘记在脚本标记中添加type =“text / javascript”,以确保它不会破坏任何内容。

如果您仍然遇到问题,请尝试使用.load()的回调函数,例如

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

答案 2 :(得分:0)

“#p”选择器查找ID为“p”的DOM元素 - 这里没有类似的东西。

正确的选择器是“#p1”。

另外,要在节点中设置文本,请使用text(): (见http://docs.jquery.com/Manipulation中的文字(val))

  

$( “#P1”)文本( 'ABC');

答案 3 :(得分:0)

呃,加载内容时文档是否已经“准备好”?警报真的开火吗?如果是这样,我同意arnab_deka:使用.text()方法。