我正在使用jQuery $ .load()函数从服务器获取内容。 加载的内容包含:
<p id="p1">123</p>
<script>
$(document).ready(function(){
$('#p1').html('ABC');
alert($('#p1').html());
});
</script>
将段落文本更改为“ABC”不会影响到页面,但alert()会显示“ABC”。
答案 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()方法。