Jquery追加元素然后改变css?

时间:2010-06-30 02:19:34

标签: javascript jquery append

我正在尝试创建一个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。

2 个答案:

答案 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(...)