从上下文中获取标题

时间:2012-05-01 05:47:55

标签: javascript jquery

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

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);
             }
});

编辑:我忘记了doctype只是因为它是必要的。上下文来自AJAX请求。

6 个答案:

答案 0 :(得分:3)

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

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

Demo


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

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

Demo

答案 1 :(得分:2)

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

答案 2 :(得分:1)

this should do

var title = $(context).eq(0).text()

答案 3 :(得分: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/

答案 4 :(得分:1)

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

$(context)[1].innerHTML

返回标题

答案 5 :(得分:1)

我不知道为什么,但没有人提到这一点。这是一个popular method来搜索响应中的元素:

$(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/