Это продолжение решения этого вопроса.
Я использую функцию load()
jQuery, чтобы вытащить заголовок в теге div с одной страницы на другую на моем сайте. Это прекрасно работает.
Проблема в том, что load()
также вытягивает сам тег div, который мне не нужен, поскольку он затем форматируется с помощью CSS, как исходная страница.
Вот PHP:
function get_team_articles($team_id, $feat=0) { . . . while ($row = mysql_fetch_assoc($r)) { $page = explode('_', $row['page_id']); (is_numeric($page[1])) ? $pre = 'wk_' : $pre = ''; $arr[] = $page[0] . " | " . $pre . $page[1] . ": " . " <a linked_div='news_header' linked_path='../news/" . $page[0] . "/" . $pre . $page[1] . "/" . $page[1] . "_" . $page[2] . ".html' href='index.php?view=news&yr=" . $page[0] . "&wk=" . $page[1] . "&pg=" . $page[2] . "'></a>"; } $articles = implode('<br/>', $arr); return $articles; }
Обратите внимание на linked_div
и linked_path
в теге привязки, которые используются в моем jQuery:
function set_team_headlines(){ $('#section-articles > a').each(function() { var a = $(this); a.load(a.attr('linked_path') + ' #' + a.attr('linked_div')); }); }
Очевидно, что я не могу разбить теги HTML в тегах привязки в PHP, потому что у сервера нет текста в тегах привязки при загрузке; поэтому я предполагаю, что мне нужно снять HTML-код в jQuery после вызова load()
… и это то, что я не могу понять, как это сделать. 🙂
В результате я хочу :
<a href="...">My headline</a>
В результате я получаю :
<a href="..."><div id="news_header">My headline</div></a>
Надеюсь, это имеет смысл. Я думаю, что я представил больше деталей, чем мне нужно. Благодаря!
Перейдите на другой уровень в селекторе .load
a.load(a.attr('linked_path') + ' #news_header');
Если ваш идентификатор news_header не уникален, недопустимо выбирать по этому идентификатору (идентификаторы должны быть уникальными!)
Чтобы обойти эту проблему, используйте это:
a.load(a.attr('linked_path') + ' #' + a.attr('linked_div') + ' div');
Редактировать:
.load
фактически включает целевой элемент при добавлении html вместо добавления дочерних элементов целевого элемента. Я $.get()
к использованию $.get()
.
$.get(a.attr('linked_path')).done(function(html) { a.text($(html).filter("#news_header").text()); });