我使用jQuery将html页面加载到div中。如何使用jquery / css定位html页面的主体以应用边距?我可以在每个html页面上手动完成,但我正在寻找一种更快捷的方式。
我的尝试(不起作用):
$myDiv= $targetDiv.find("#targetContent");
$myDiv.load($(this).attr('href'));
$myDiv.find("body").css("margin-top","50px");
链接:
答案 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中的body
和head
标记,因此更改的正文边距不会为您提供任何内容。您所要做的就是扩展容器元素的填充
$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
包含更多元素。上述方法应该可以解决您的问题。