$ .post返回[object Object]

时间:2012-07-26 13:03:49

标签: php javascript jquery

为什么会返回[object Object] ???我想将#new内容返回到提醒状态。 (实际上我想将该文本附加到一个新div,如果解决了[object Object]问题,我可以这样做)

<script type="text/javascript">
      $(document).ready(function() {
        $.post("post.php", {"test": "hello"}, function(data) {
           var myDiv = $(data).filter("#new");
           alert(myDiv);
        });
      });
</script>

5 个答案:

答案 0 :(得分:3)

完美无缺。

alert 显示对象的所有属性,这就是您要提醒的内容。
请尝试使用console

//info on the jQuery DOM obj:
console.log(myDiv);

//info on the jQuery obj:
console.dir(myDiv);

例如:http://jsfiddle.net/agNNW/(谢谢@Esailija

答案 1 :(得分:1)

因为myDiv是对象,你必须在其中访问html,

如果你想要html,请使用jquery的html()函数, 如果你想要文本而不是html

,请使用jquery的text()函数
 myDiv.html();

   $(document).ready(function() {
    $.post("post.php", {"test": "hello"}, function(data) {
       var myDiv = $(data).filter("#new");
       alert(myDiv.html());
    });
  });

答案 2 :(得分:0)

我会猜测并说它运作得很好。如果您的myDiv是一个DOM元素,那就是一个对象而alert不知道如何打印它。永远不要依赖警报进行调试。尝试将其附加到DOM元素,它可能会正常工作。

答案 3 :(得分:0)

与许多jQuery方法一样,.filter()返回一个jQuery对象,因此您当前的警报正确显示[object Object]

假设data是一个html字符串,你可以通过这样做看到该html中#new元素的内容:

var myDiv = $(data).filter("#new");
alert(myDiv.html());
// or
alert(myDiv.text());
// or put the text in a variable:
var newText = myDiv.html();
// or
var newText = $(data).filter("#new").html();

要附加到您的其他元素:

$("#someotherelement").append(myDiv.html());

答案 4 :(得分:0)

myDiv将包含一个jQuery对象,所以如果你想看到它的'内容,你应该使用

alert(myDiv.text());

alert(myDiv.html());

console.log(myDiv);