如何使用 JavaScript 设置 marginLeft 属性?

新手上路,请多包涵

我使用以下代码为一个 div 设置左边距 id=""

 document.getElementById('s4-ca').style.marginLeft = '0px';

但是会出现像 Object Required! 这样的错误!

更新 - 我的代码

<script type="text/javascript">
    var groupName;
    $().SPServices({
    operation: "GetGroupCollectionFromUser",
    userLoginName: $().SPServices.SPGetCurrentUser(),
    async: false,
    completefunc: function(xData, Status) {
    $(xData.responseXML).find("[nodeName=Group]").each(function()
    {
    groupName = $(this).attr("Name");
    });
    }
    });
    if($.trim(groupName) != 'ABC')
    {
    document.getElementById('s4-leftpanel').style.display = 'none';
    document.getElementById('s4-ca').style.marginLeft = '0px';
    }
</Script>

原文由 Jithu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 779
2 个回答

你的 JavaScript 没有任何问题,只需给 <div> 一个匹配的 id 属性,然后它应该可以正常工作,即

<div id="s4-ca"></div>

所以你得到错误的原因是因为 document.getElementById('s4-ca') 没有找到匹配的 en 元素 id ,所以它是 null , and you can’ t 引用 null 对象的 style 属性。

此外,当您设置 marginLeft 时,无需为零指定单位,您可以只使用 0

 document.getElementById('s4-ca').style.marginLeft = "0";

原文由 Chris Fulstow 发布,翻译遵循 CC BY-SA 3.0 许可协议

不可重现:http: //jsfiddle.net/VH2z2/

我假设您在元素可用 之前 调用 document.getElementById

在页面底部或 load 事件处理程序中包含代码,例如

window.onload = function() {
    document.getElementById('s4-ca').style.marginLeft = '0px';
};

如果有其他 JavaScript 代码可能会设置 load 事件处理程序(您会覆盖它),则不应执行此操作。

原文由 Felix Kling 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏