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

标签 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 。如果我检查data通过 firebug,它准确地显示了我上面输入的内容。

一些额外信息

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 引用。

最佳答案

要使用选择器,您首先需要该字符串成为 DOM 树的一部分。 $(data) 不这样做 自动地,您需要将其附加到元素(如正文)或替换现有元素。

onComplete: function(content) {
 content.find("#whatever"); // won't work
 $("#existingElement").html(content);
 $("#existingElement").find("#whatever"); // works
}

关于javascript - 使用jquery从post数据中检索元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307779/

相关文章:

javascript - Vuetify组合框多次添加选项?

javascript - 在javascript中编写for循环的更好方法

javascript - twitter 数字 api 授权 javascript

jquery - 我如何使用 JQuery 将 IFRAME 滑出页面而不重绘它?

javascript - 从 JQuery 动态选择并填充输入值

jquery - 单击时,将背景颜色从一个按钮滑动到另一个按钮

javascript - 通过 JavaScript 渲染时,IE 不会将链接标记为 "visited"

javascript - 无法从 Controller 功能访问范围

javascript - 有没有办法等待 AJAX 响应并停止执行?

javascript - 如何使用 jquery ajax 显示来自 aspx 页面的响应