0

为什么会返回[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>
4

5 回答 5

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

于 2012-07-26T13:07:08.237 回答
1

因为 myDiv 是对象,所以您必须在其中访问 html,

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

 myDiv.html();

   $(document).ready(function() {
    $.post("post.php", {"test": "hello"}, function(data) {
       var myDiv = $(data).filter("#new");
       alert(myDiv.html());
    });
  });
于 2012-07-26T13:05:52.910 回答
0

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

于 2012-07-26T13:06:13.493 回答
0

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

假设data是一个 html 字符串,您可以#new通过执行以下操作查看该 html 中元素的内容:

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());
于 2012-07-26T13:07:01.087 回答
0

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

alert(myDiv.text());

或者

alert(myDiv.html());

或者

console.log(myDiv);
于 2012-07-26T13:09:41.957 回答