我正在使用jQuery的load()
函数将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'));
});
}
显然我不能在PHP中的锚标签中剥离HTML标签,因为服务器在加载时没有锚标签内的文本;所以我假设我需要在load()
调用后删除jQuery中的HTML ...这就是我无法弄清楚如何做的事情。 :)
我想要的结果是:
<a href="...">My headline</a>
我获取的结果是:
<a href="..."><div id="news_header">My headline</div></a>
希望这是有道理的。我想我提供了比我需要的更多细节。谢谢!
答案 0 :(得分:2)
在.load
选择器
a.load(a.attr('linked_path') + ' #news_header');
如果您的news_header ID不唯一,则无法通过该ID进行选择(ID必须是唯一的!)
要解决该问题,请使用:
a.load(a.attr('linked_path') + ' #' + a.attr('linked_div') + ' div');
修改强>
.load
实际上在追加html时包含目标元素,而不是附加目标元素的子元素。我会转而使用$.get()
。
$.get(a.attr('linked_path')).done(function(html) {
a.text($(html).filter("#news_header").text());
});