Решение зависит от того, где тег был возвращен вам в ответе 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'