如何使用JavaScript设置marginLeft属性?

时间:2011-12-06 11:50:30

标签: javascript

我使用以下代码为id=""

设置div的左边距
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>

6 个答案:

答案 0 :(得分:1)

不可复制:http://jsfiddle.net/VH2z2/

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

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

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

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

答案 1 :(得分:0)

这样的事可能吗?

$('#s4-ca').css({ marginLeft: 0 });

答案 2 :(得分:0)

$('#s4-ca').css({ marginLeft: 0 });

$('#s4-ca').css('margin-left', 0 );

你的代码不是jquery,但上面的代码是在jquery中执行此操作的方法,两者都有效。

更新:您的错误消息可能意味着没有id =“s4-ca”的元素,请检查这样的元素!看到这个jsfiddle:http://jsfiddle.net/4DzyW/你的代码在哪里工作。

答案 3 :(得分:0)

如果你想使用jQuery(根据你的问题&#39;标签)

$("#s4-ca").css('marginLeft','0px');

.css jQuery的Api

答案 4 :(得分:0)

问题是“对象需求”  这意味着

document.getElementById('s4-ca')

什么都不返回,你必须确保id为's4-ca'的元素存在

答案 5 :(得分:0)

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

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

因此,您收到错误的原因是因为document.getElementById('s4-ca')找不到匹配id的en元素,所以它是null,您无法引用

上的style属性

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

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