将加载到div中的html主体定位

时间:2013-10-08 18:49:10

标签: jquery html css load

我使用jQuery将html页面加载到div中。如何使用jquery / css定位html页面的主体以应用边距?我可以在每个html页面上手动完成,但我正在寻找一种更快捷的方式。

我的尝试(不起作用):

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

链接:

2 个答案:

答案 0 :(得分:2)

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

$myDiv.parent("body").css("margin-top","50px");

答案 1 :(得分:0)

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

$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");

请注意,如果其src来自同一个域,您可以访问iframe的内容

修改

我发现jQuery.load函数修剪了加载的HTML中的bodyhead标记,因此更改的正文边距不会为您提供任何内容。您所要做的就是扩展容器元素的填充

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

编辑2

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

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

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