3

我正在尝试$.load()从其他页面(foo.html)获取一些数据。假设我希望我的 current<title>Current</title>与 foo 的标题相同,<title>Foo</title>. 我正在做的是: $("title").load("foo.html title");

<title>问题是我得到了带有标签 的 foo 的标题:<title><title>Foo</title></title> 它显然不起作用。我怎样才能只得到 foo 的标题文本?

4

3 回答 3

4

这感觉就像一个黑客,但它的工作原理。

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

尽管这是一个 hack,但我制作了一个您可以使用的小插件。

$.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');
于 2012-08-17T18:21:24.697 回答
2

我会$.get(url, data, success)按照 jquery 的建议使用 global 代替。这有效(经过测试):

$.get('foo.html', function(responseText, textStatus, XMLHttpRequest) {
    $('title').text($(XMLHttpRequest.responseXML).find('title').text());  
});
于 2012-08-17T18:37:10.250 回答
-2

试试这个...

$("title").load("foo.html").find("title").text()
于 2012-08-17T18:25:57.737 回答