加载另一个页面的HTML并使用jQuery通过选择器解析它

时间:2013-08-30 12:51:31

标签: javascript jquery html

我在jsFiddle

上尝试了例子
$.get('/user/login/', function(content){  /* (jsFiddle.net/user/login is in the same domain) */
    alert($('*',content).html()); 
});

但它返回

<a href="/">JSFiddle</a> 

我做错了什么?我想提取HTML的标题,但$(&#39;标题&#39;,内容)无效

3 个答案:

答案 0 :(得分:1)

据我所知,JSFiddle不允许AJAX调用。

编辑:但他们确实提供了某种模拟,虽然我没有使用它http://doc.jsfiddle.net/use/echo.html

答案 1 :(得分:1)

没有Ajax就可以做到这一点。

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Load remote content into object element</title>
  </head>
  <body>
    <div id="siteloader"></div>​
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script>
      $("#siteloader").html('<object data="http://tired.com/">');
    </script>
  </body>
</html>

获取页面后尝试解析它。

答案 2 :(得分:1)

它将检查jsfiddles登录页面。

之类的东西
http://jsfiddle.net/user/login/

您可以使用/echo/json/之类的内容作为网址:

<div class='wrapper'>
<p>JSON will be received in 3 seconds</p>
<ul id='post'></ul>
</div>

new Request.JSON({
    url: '/echo/json/',
    data: {
        json: JSON.encode({
            text: 'some text',
            array: [1, 2, 'three'],
            object: {
                par1: 'another text',
                par2: [3, 2, 'one'],
                par3: {}
            }
        }),
        delay: 3
    },
    onSuccess: function(response) {
        show_response(response, $('post'));
    }
}).send();

show_response = function(obj, result) {
    $H(obj).each(function(v, k) {
        new Element('li', {
            text: k + ': ' + v
        }).inject(result);
    });
    result.highlight();
};

jsfiddle demo:http://jsfiddle.net/zalun/QsHw4/#