2012-07-26 12 views
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> 
+1

оповещения (myDiv.html()) ??? – Eamorr

+1

Поскольку это объект, попробуйте 'console.dir', чтобы узнать, какие свойства у него есть – Esailija

+0

, потому что теперь он jQuery-объект, когда вы использовали $ (data), даже ответа нет. try $ (data) .filter ("# new"). html(); –

ответ

1

Поскольку myDiv является объектом, который вы должны получить доступ к HTML в нем,

использование html() функции JQuery, если вы хотите HTML, Используйте text() функцию JQuery, если вы хотите текст вместо HTML

myDiv.html(); 

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

COOl. Какой простой вопрос, который я спросил nha ... :) – stackminu

+0

Это происходит когда-то :) – Adil

0

Я собираюсь принять диких угадать и сказать, что это работает отлично. Если ваш myDiv является элементом DOM, то есть объектом, а alert не имеет понятия, как его распечатать. Никогда не полагайтесь на предупреждение для целей отладки. Попробуйте добавить его к элементу DOM, и он, вероятно, будет работать нормально.

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()); 
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

Предпочитаю ['console.dir'] (http://jsfiddle.net/agNNW/) – Esailija

+0

@Esailija Я добавил, что^_ ^ – Neal

0

myDiv будет содержать объект JQuery, так что если вы хотите, чтобы увидеть его содержимое, вам следует использовать

alert(myDiv.text()); 

или

alert(myDiv.html()); 

или

console.log(myDiv); 
Смежные вопросы