Php 从jQuery load()结果中剥离HTML
这是一个后续的解决方案 我正在使用jQuery的load函数将div标记中的标题从一个页面拉到我站点中的另一个页面。这真是太棒了 问题是,load还拉取div标记本身,这是我不想要的,因为它会像源页面一样通过CSS格式化 以下是PHP:Php 从jQuery load()结果中剥离HTML,php,jquery,html,Php,Jquery,Html,这是一个后续的解决方案 我正在使用jQuery的load函数将div标记中的标题从一个页面拉到我站点中的另一个页面。这真是太棒了 问题是,load还拉取div标记本身,这是我不想要的,因为它会像源页面一样通过CSS格式化 以下是PHP: function get_team_articles($team_id, $feat=0) { . . . while ($row = mysql_fetch_assoc($r)) { $page = explod
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;
}
显然,我无法在PHP中剥离锚定标记中的HTML标记,因为服务器在加载时锚定标记中没有文本;因此,我假设我需要在加载调用后剥离jQuery中的HTML…这就是我无法理解的方法:
我想要的结果是:
我得到的结果是:
希望这是有道理的。我想我提供了比我需要的更多的细节。谢谢 在.load选择器中再向下导航一级 如果您的新闻标题id不唯一,则根据该id进行选择是无效的。该id必须是唯一的 要解决该问题,请使用以下方法:
a.load(a.attr('linked_path') + ' #' + a.attr('linked_div') + ' div');
编辑:
.load在附加html时实际上包括目标元素,而不是附加目标元素的子元素。我会使用$.get
对不起,@Kevin-B,新闻标题是一个id,不是一个类。我将编辑我的原始帖子。对,但在链接的源页面上,ID是唯一的。在目标页面上,它们不会出现,但我不希望该div/ID填充返回到当前的原始版本。请参阅我的上一次编辑,这两种方式都可以。至少试试第一个。如果新闻标题在您请求的页面上是唯一的。加载,这就是您应该使用的。啊,是的,这很有意义。加载选定图元及其子图元,而不仅仅是其子图元。在这种情况下,我建议远离.load并使用$.get。我将更新答案。修改选择器,直到它更新为止。我没有你的html来处理。尝试使用.filter而不是.find等。最终load会获取整个页面,并为您的方便而剥离。为什么不找到'div'。从最终结果中删除?@Jashwant你的意思是像a.loada.attr'linked\u path'+''+a.attr'linked\u div.找到'div'。删除;?如果是这样的话,那就无法去掉标记,并导致与我的原始代码相同的问题解决方案。
<a href="...">My headline</a>
<a href="..."><div id="news_header">My headline</div></a>
a.load(a.attr('linked_path') + ' #news_header');
a.load(a.attr('linked_path') + ' #' + a.attr('linked_div') + ' div');
$.get(a.attr('linked_path')).done(function(html) {
a.text($(html).filter("#news_header").text());
});