Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery如何从html响应中获取正文内容_Jquery_Ajax_Json - Fatal编程技术网

jQuery如何从html响应中获取正文内容

jQuery如何从html响应中获取正文内容,jquery,ajax,json,Jquery,Ajax,Json,我有点问题 我有一个ajax请求,它被发送出去进行数据库更新。然后返回一个如下所示的响应: ... ... </head> <body class="contentpane"> {"id":"27","votes":14,"sum":45,"avg":"3.2"} </body> </html> 如何获取body类contentpane的内容,然后将其转换为JSON对象 我的请求函数如下所示: jQuery.post("index.php?o

我有点问题

我有一个ajax请求,它被发送出去进行数据库更新。然后返回一个如下所示的响应:

...
...
</head>
<body class="contentpane">
{"id":"27","votes":14,"sum":45,"avg":"3.2"}
</body>
</html>
如何获取body类contentpane的内容,然后将其转换为JSON对象

我的请求函数如下所示:

  jQuery.post("index.php?option=com_ttvideo&task=savevote&tmpl=component", {rate: value, id: <?php echo $this->video->id; ?> }, function(html)
  {
    // get contents of "contentpane" from response html
    // convert to JSON object e.g.
    // var rating = jQuery.parseJSON(content_of_body);    
    // is the above JSON parse correct?    

    // Select stars to match "Average" value
    ui.select(Math.round(rating.avg));

    // Update other text controls...
    jQuery("#avg").text(rating.avg);
    jQuery("#votes").text(rating.votes);

    // Show Stars
    jQuery("#loader").hide();
    jQuery("#rat").show();

  });
像这样:

$.parseJSON($('body', html).text())
我假设JSON将被HTML转义,这可能是错误的。如果不是,您有时可以调用.html而不是.text,但更可能需要编写自己的解析器

您应该用真正的JSON响应替换您的Web服务。

如下所示:

$.parseJSON($('body', html).text())
我假设JSON将被HTML转义,这可能是错误的。如果不是,您有时可以调用.html而不是.text,但更可能需要编写自己的解析器


您应该用真正的JSON响应替换您的Web服务。

非常简单。通过DIV包裹车身内部将完成以下操作:

$.get(url, {}, function(data){
  var data = data.replace('<body', '<body><div id="body"').replace('</body>','</div></body>');
  var body = $(data).filter('#body');
  (... do what you want with body ...)
});

很简单。通过DIV包裹车身内部将完成以下操作:

$.get(url, {}, function(data){
  var data = data.replace('<body', '<body><div id="body"').replace('</body>','</div></body>');
  var body = $(data).filter('#body');
  (... do what you want with body ...)
});

这是我在Joomla中开发的一个组件,为了使php函数保持在Joomla框架内,它需要通过组件MVC框架运行响应——退一步说,它也会返回所有html,啧啧啧:我试图一次完成这1个步骤,1。使用var rating=jQuerybody,html.text从body标记中获取值;但是这个返回为空,替换为.html返回空。@Martin:我无法想象这是没有办法的。然而,我不认识乔姆拉。在这里问一个单独的问题。试试$html.find'body.text.谢谢,但我在Joomla中找到了这篇关于MVC的JSON响应的文章-这是我在Joomla中开发的一个组件,为了让php函数保持在Joomla框架内,它需要通过组件MVC框架运行响应-这是一个倒退,它返回所有这些html也一样,啧啧:我试着一次完成这1个步骤,1。使用var rating=jQuerybody,html.text从body标记中获取值;但是这个返回为空,替换为.html返回空。@Martin:我无法想象这是没有办法的。然而,我不认识乔姆拉。在这里问一个单独的问题。试试$html.find'body.text。谢谢,但我在Joomla中找到了这篇关于MVC的JSON响应的文章-