0

如何选择上下文的标题?我想选择它来更改页面的标题。

var handler = function(context){
    document.title = //context's title
    ....
}

//sample context from ajax request
var context = '<!DOCTYPE html><html>\
            <head><title>Hello</title></head>\
            <body>\
            <a href="#">Click Here</a><p>This is my sentence.</p>\
            </body></html>';

.ajax{(
    ...
    success: function(data){
                 handler(data);
             }
});

编辑:我忘记了文档类型,以防万一。上下文来自 AJAX 请求。

4

6 回答 6

3

您也可以使用正则表达式来提取标题

var matches = context.match(/<title>(.*?)<\/title>/);
var title = matches[1];

演示


刚刚发现了一种方法,即非正则表达式方式

title = $(context).filter("title");
console.log(title.html());

演示

于 2012-05-01T05:49:49.970 回答
2

jquery $ 函数的第二个参数是上下文所以你可以试试$("title",$(context)).text()

于 2012-05-01T05:49:35.387 回答
1
var handler = function(context){

    $xml=$.parseXML(context);
   console.log($($xml).find('title').text());
}


var context = '<html><head><title>Hello</title></head><body><a href="#">Click Here</a><p>This is my sentence.</p></body></html>';

    handler(context);

http://jsfiddle.net/MdvWq/

于 2012-05-01T05:55:27.003 回答
1

请检查http://jsfiddle.net/sethunath/UAt5p/

$(context)[1].innerHTML

返回标题

于 2012-05-01T06:02:44.690 回答
1

这应该这样做

var title = $(context).eq(0).text()
于 2012-05-01T05:48:52.507 回答
1

我不知道为什么,但没有人提到这一点。这是一种在响应中搜索元素的流行方法:

$(function() {
    var context = '<html><head><title>Hello</title></head><body><a href="#">Click Here</a><p>This is my sentence.</p>< /body></html > ';
    alert($(context).filter("title").html());   //Use filter to get elements you want
    alert($(context).filter("a").html());       //Will get HTML of that link (<a>)
    alert($(context).filter("body > p").html());  //HTML of <p>
});​

http://jsfiddle.net/DerekL/THdaC/2/

于 2012-05-01T06:19:02.850 回答