我正在尝试创建一个div标签,然后通过css更改它,但由于某种原因,它不能在这里工作是我的代码:
$('#draw').click(function(e){
var divToAdd = "<div id='box' style='display:block;background-color:red;width:100px;height:100px'></div>";
$("#area").append(divToAdd);
});
$('#left').click(function(e){
//var leftNow = document.getElementById("box").left + 1;
alert(document.getElementById("box").left);
$("#box").css('left',leftNow);
});
$('#right').click(function(e){
var leftNow = document.getElementById("box").left - 1;
$("#box").css("left","90");
});
因此,由于某种原因,document.getElementById(“box”)。left的值是未定义的。我一直试图解决这个问题,我的语法可能也有问题吗?任何帮助将不胜感激,非常感谢!谢谢Nick Craver。
答案 0 :(得分:5)
在这种情况下,您需要.style.left
或$("#box").css('left');
。
但是......有一种更简单的方式,就像这样:
$("#box").css("left","-=1");
你可以通过这种方式使它相对,+=
也一样,保持简单:)
答案 1 :(得分:1)
我有两点建议:
(1)使用jQuery对象而不是对象本身
var divToAdd = $("<div id='box' style='display:block;background-color:red;width:100px;height:100px'></div>");
实际上,上面的表达也不是那么好,以使其更加“jQuery”:
var divToAdd = $('<div></div>').css('background-color','red').css....
(2)如果你参与了jQuery,继续使用jQuery
$('#box').css('left') instead of document.getElemengById(...)