注意:在某些评论的帮助下,这似乎很可能不可能
我正在使用jQuery ajax调用来发送电子邮件地址,在调用的PHP文件中,我会根据结果返回错误或成功消息。
现在我想在我的jQuery $.post
成功之后提醒这个结果,问题是被调用的PHP文件包含一个也有Javascript文件的配置文件,所以我的数据将如下所示:
<script type="text/javascript" src="x.js"></script>Message
所以我尝试了以下内容:
数据
<script type="text/javascript"> src="x.js"></script><p>Message</p>
我在$.post
中尝试了两件不同的事情:
发表
$.post('ajax.php',function(data){
alert($(data).find('p'));
// this returns [object Object]
alert($(data).find('p').html());
// this returns null?
}
alert($(data).find('p'));
返回[object Object]
的事实让我觉得它有效,但后来我不明白为什么.html()
会返回null
。如果我通过firebug检查data
,它会准确显示我在上面输入的内容。
一些额外信息
console.log(data)
返回
<script type="text/javascript"> src="x.js"></script><p>Message</p>
console.log($(data).find('p'))
返回一个jQuery对象。
console.log($(data).find('p').length);
返回0
$('html').append(data);
console.log($('p').html());`
按预期返回Message
。
最终修改
我没有想到$
中的$(data).find('p')
可能是它返回[object Object]
的原因。
现在我想起来,似乎很明显我不可能做我要问的事情,因为我试图在字符串上使用jQuery的选择器引擎。我将更改我的文档结构,以从我的配置文件中删除JS引用。
答案 0 :(得分:1)
要使用选择器,首先需要将该字符串作为DOM树的一部分。 $(数据)没有这样做 自动地,您需要将其附加到元素(如正文)或替换现有元素。
onComplete: function(content) {
content.find("#whatever"); // won't work
$("#existingElement").html(content);
$("#existingElement").find("#whatever"); // works
}
答案 1 :(得分:-1)
在PHP中回复它
alert(<?php echo $_POST['variable']; ?>);