使用jquery从post数据中检索元素

时间:2011-06-10 14:29:41

标签: javascript jquery ajax select http-post

注意:在某些评论的帮助下,这似乎很可能不可能

我正在使用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引用。

2 个答案:

答案 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']; ?>);