$.post( url, JSON_POST,
function( data ) {
var content = $( data );
var content = $( data ).find( '#json' );
console.log(data);
console.log(content);
}
);
第一个console.log的结果是
<div id="json">{"status":1,"message":"Reply submitted successfully."}</div>
<div id="test">sdfsafdsfds</div>
但由于某种原因,第二个日志返回一个空数组。我试图查询数据变量中的html,但结果始终是空集。
我真的很感谢帮助我。我查看了$ .post手册,但没有提到这个问题。
P.S我正在使用JQUERY 1.7
答案 0 :(得分:3)
find
查找所选元素的后代。在您的情况下,两个元素都没有后代,更不用说ID json
。
相反,您正在寻找所选元素的特定元素。在这种情况下,您应该filter
[docs]当前元素:
var content = $(data).filter('#json');
答案 1 :(得分:1)
你在XML中使用容器元素吗? 也许这会导致问题。
你必须在xml中使用root元素来获得正确的解析。因此,您的XML响应应如下所示:
<root>
<div id="json">{"status":1,"message":"Reply submitted successfully."}</div>
<div id="test">sdfsafdsfds</div>
</root>
<root>
元素可以是您喜欢的任何内容,例如:<foo>
或<div>
是的,这是你的问题。
在javascript控制台中试试这个:
var asd = '<div id="json">{"status":1,"message":"Reply submitted successfully."}</div><div id="test">sdfsafdsfds</div>'
console.log($(asd).find("#json")) > []
console.log($("<root>"+asd+"</root>").find("#json")) > [<div id="json">{"status":1,"message":"Reply submitted successfully."}</div>]