0

I am loading html pages into a div using jQuery. How can I target the body of the html pages to apply margin using jquery/css? I can do it manually on each html page but I was looking for a quicker way.

My attempt(which isn't working):

$myDiv= $targetDiv.find("#targetContent");
$myDiv.load($(this).attr('href'));
$myDiv.find("body").css("margin-top","50px");

link:

4

2 回答 2

2

您不能将主体放在 div 中。body 是 html 页面中所有元素的父级。你可能想要.parent()

$myDiv.parent("body").css("margin-top","50px");
于 2013-10-08T18:51:36.377 回答
0

整个文档中可能只有一个正文元素。但是,您可以使用iframe's.

$myDiv = $targetDiv.find("#targetContent"); //assuming that #targetContent is an iframe
$myDiv.attr('src', $(this).attr('href'));
$($myDiv.get(0).contentWindow.document.body).css("margin-top","50px");

请记住,只有当 iframe 的 src 来自同一个域时,您才能访问 iframe 的内容。

编辑

我发现该函数会从加载的 HTML中jQuery.load修剪body和标记,因此更改正文边距不会给您任何帮助。head您所要做的就是扩展容器元素的填充

$myDiv= $targetDiv.find("#targetContent");
$myDiv.load($(this).attr('href'), function() {
    $myDiv.css("padding-top","+=50px");
});

编辑 2

如果你想访问div由 jQuery 加载的第一个,你必须这样做

$myDiv.children('div').first().css("padding-top","+=50px");

但是,如果您希望解决方案更接近您的问题,您可以div在您的问题中添加另一个#targetContent并添加填充。我假设它#targetContent包含更多元素。上述方法应该可以解决您的问题。

于 2013-10-08T19:06:18.647 回答