jQuery ajax只加载某个元素的文本

时间:2012-08-17 18:20:42

标签: jquery ajax

我正在尝试$.load()来自其他网页(foo.html)的一些数据。假设我希望我当前的<title>Current</title>与foo的标题<title>Foo</title>相同。 我在做的是: $("title").load("foo.html title");

问题是我使用<title>标记获得了foo的标题: <title><title>Foo</title></title> 它显然不起作用。 我怎么才能得到foo标题的文字?

3 个答案:

答案 0 :(得分:4)

这感觉就像一个黑客但它有效。

$("<div>").load("foo.html title", function(){
  $('title').text($(this).text());
});

即使这是一个黑客,我制作了一个你可以使用的小插件。

$.fn.loadText = function(path, selector){
  var node = this[0].nodeName.toLowerCase();
  $("<div>").load(path + " " + selector, function(){
    $(node).text($(this).text());
  });
}

像这样使用:

$('title').loadText("some path", 'title');

如果您想加载title,另一个标记的文字......

$('title').loadText("some path", 'div#foo');

答案 1 :(得分:2)

我会使用全局$.get(url, data, success)而不是jquery上的建议。这工作(测试):

$.get('foo.html', function(responseText, textStatus, XMLHttpRequest) {
    $('title').text($(XMLHttpRequest.responseXML).find('title').text());  
});

答案 2 :(得分:-2)

试试这个......

$("title").load("foo.html").find("title").text()