我如何获取html页面的一部分?

时间:2012-08-17 14:27:05

标签: jquery ajax

This is the output of alert box我试图从abc.php获取类“mno”的div元素到xyz.php

http://pastebin.com/MhAqhZpd有我正在使用的代码(不是整个代码只有ajax部分)

url指向脚本,但第二个警告框不显示任何内容,甚至不显示“NULL” - console.log也没有提供任何内容。我是ajax的新手,所以可能会提前遗漏一些微不足道的事情

5 个答案:

答案 0 :(得分:4)

如果您要访问的文件位于同一服务器中,请使用http://api.jquery.com/load/

$("div").load("abc.php div.mno");

答案 1 :(得分:1)

您可以使用jQuery加载方法。与$ .get()不同,.load()方法允许您指定要插入的远程文档的一部分。这是通过url参数的特殊语法实现的。如果字符串中包含一个或多个空格字符,则假定第一个空格后面的字符串部分是jQuery选择器,用于确定要加载的内容。

$('div').load('abc.php div.mno');

答案 2 :(得分:1)

也许你可以这样:(我坚持你提出的问题!)

$.get('abc.php',function(data){
    var mnoDivHTML = $(data).find('div.mno').html(); //the html content of .mno div in abc.php
    $('div.yourclass').html(mnoDivHTML); //fill the desired div in the current page
});

答案 3 :(得分:1)

$.load()非常棒,如果你不介意它不太灵活,但如果你想要更强大的东西,你可以实际使用$.get$.post

示例:

var data = {'someParam':'someValue'};
$.post('abc.php', data, function(response){
    var myDiv = $('.mno', response); //get class .mno from response text
    alert(myDiv.html());
});

如果您使用它来获取搜索结果的下一页,这可能非常简洁,因此您可能希望将参数传递到下一页。

答案 4 :(得分:1)

另一种方法:)只需将load.html替换为您要加载的文档和div,如:mypage.php .somediv

<script type="text/javascript">    

$(document).ready(function(){
//var ajax = function(url){
//var url = 'load.html';
//$('.content').load(url);
//}
// Than you call it like THIS: ajax();
//$('.button').click(function(){
//$('.content').load('load.html')
//});
//response contains the text content that was returned from the ajax request
$(".content").load('load.html', function(response, error, xhr) {
if (error == "error") {
var msg = "Sorry but there was an error: ";
$("#error").html(msg + xhr.status + " " + xhr.statusText);


}
});
});
});
</script>