Получение строки между тегами html с использованием jQuery - PullRequest
0 голосов
/ 15 марта 2011

Мне удалось получить html-содержимое веб-страницы через jQuery и ajax. Теперь я хочу найти значение между тегами h1 и отобразить его. Как я могу сделать это в JQuery?

$.get(link, function(res){
    //get link content
    var temp_content = res.responseText;
}

благодарственное в

Ответы [ 3 ]

2 голосов
/ 15 марта 2011
$( temp_content ).find( 'h1' ).text()

Это должно сделать это.Вы создаете объект jQuery, находите H1, а затем получаете его текст.

2 голосов
/ 15 марта 2011

Используйте .find () , чтобы найти, где в возвращенной строке у вас есть <h1></h1> и .text () , чтобы получить что-нибудь между <h1></h1>.

Обратите внимание, что если эта веб-страница находится в другом домене, у вас есть проблемы с межсайтовым скриптингом.Если он находится в том же домене, с вами все будет в порядке.

$.get(link, function(res){
    //get link content
    var temp_content = res.responseText;
    $(temp_content).find("h1").text();
}
1 голос
/ 15 марта 2011

Решение зависит от того, где тег был возвращен вам в ответе HTML.Например, если элемент <h1> находится в основном теле или автономно в строке без тегов объемного HTML и тела, то find() не будет работать для вас.Смотрите этот пример:

var html_str = '<html><body><h1>Title</h1><h1>Second Title</h1></body></html>';
var html_str2 = '<h1>Title</h1><h1>Second Title</h1>';

$(html_str)       --> jQuery( h1, h1 )
$(html_str2)      --> jQuery( h1, h1 )

Если вы вызовете find для этих объектов jQuery, то он попытается найти нужный элемент из дочерних элементов <h1>.Это, конечно, не сработает.Вы можете использовать фильтр, чтобы убедиться, что вы получаете только нужный тег, или просто вызвать text() напрямую, например,

$(html_str).filter('h1').first().text()  --> 'Title'
$(html_str2).first().text()              --> 'Title'

Если <h1> заключен в div, то он работает нормально.См .:

var html_str3 = '<div><h1>Title</h1><h1>Second Title</h1></div>';

$(html_str3).find('h1')                     --> jQuery( h1, h1 )
$(html_str3).find('h1').first().text()      --> 'Title'

И, наконец, не забудьте позвонить first(), иначе вы получите текст из нескольких <h1> элементов, соединенных вместе.

$(html_str3).find('h1').text()    --> 'TitleSecond Title'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...