为什么jquery .text()总是返回一个空字符串?

时间:2010-09-05 23:59:59

标签: javascript jquery html ajax

我有一个简单的$.ajax调用,它返回一个如下所示的响应:

<div id='type'>success</div>
<div id="graph"></div>
<script type='text/javascript'>
   //some script that manipulates the graph div
</script>

以及我的.ajax的成功(响应)功能,我有:

$(response).find('#type').text()

我的问题是,如果我使用.html()

,它总是返回null 当我使用.text();

时,

和'空字符串'

我的语法有问题吗?

5 个答案:

答案 0 :(得分:8)

这是因为它位于响应的根级别,因此.find()不起作用(因为它不是后代),您需要.filter(),如下所示:

$(response).filter('#type').text()

答案 1 :(得分:3)

您的响应HTML需要有一个根元素,以便它可以find()个元素,因为find()搜索DOM元素的后代。您可以通过将响应添加到文档的DOM或另一个jQuery DOM元素来实现此目的。

您也可以这样做,它也会起作用:

$('<div>' + response + '</div>').find('#type').text();

答案 2 :(得分:1)

在这里你可以测试你的代码应该正常工作。你必须在ajax中遇到问题,尝试使用“alert”来“回复”以查看你得到的回复

test

答案 3 :(得分:0)

它不能像类型div中的id周围的单引号一样简单吗?

(html,而不是js)

答案 4 :(得分:0)

$.ajax()请求中,将dataType设置为html