如何使用变量获取元素的CSS信息?

时间:2012-12-25 16:54:55

标签: javascript jquery css variables

我所拥有的是以下代码来创建div。

function makeLinkdiv () {
  gCurrentBlock = $gBlockDivName + $gBlockPointer;
  var idPointer = gCurrentBlock;
  var linksBlock = $('<div id ="' + gCurrentBlock + '" class="LinksBlock EditBlock"></div>').appendTo("#canvas");
  linksBlock.draggable({containment: "#canvas", scroll: false, grid: [10, 10]}, {cursor: "move", cursorAt: {top: 125, left: 50}});
  linksBlock.append('<div class="article_title EditBlock fontCenter fontBold font24">Article Title</div>');
  //
  // log the div data to the div object
  //
  var x = gCurrentBlock.css('left');
  var y = gCurrentBlock.css('top');
  alert ('top is - ' + y + ' left is - ' + x);
  divData.items.push({ID: $gBlockPointer, Block: gCurrentBlock, posTop : "450", posLeft : "540" });
  //
  // increment the block pointer
  //
  $gBlockPointer = $gBlockPointer + 1;
  //
}

发生的事情是我没有获得顶部和左侧的CSS属性。实际上,没有任何反应。我知道我使用变量gCurrentBlock的方式肯定有问题,但我无法弄清楚。

5 个答案:

答案 0 :(得分:1)

如果不将.css()用作jQuery对象,则无法使用它。

请尝试以下方法:

var x = document.getElementById(gCurrentBlock).style.left;
var y = document.getElementById(gCurrentBlock).style.top;

答案 1 :(得分:1)

不确定您的代码试图完成什么......但是您需要查看jQuery的positionoffset方法,它们将为您提供元素的坐标。

我希望您的代码看起来更像这样:

...
var position = $('#' + gCurrentBlock).position();
var x = position.left;
var y = position.top;
...

如果值不符合您的预期,请尝试将position更改为offset

答案 2 :(得分:1)

这里gCurrentBlock是一个你直接使用jquery方法的id,所以它不起作用。

尝试x=$('#'+gCurrentBlock).css('left') //它会以像素150px的像素返回左侧位置 如果你想在数字上留下位置,你可以使用

 x=$('#'+gCurrentBlock).position().left; //will return x as 150

你可以为y做。

y=$('#'+gCurrentBlock).css('top');

y=$('#'+gCurrentBlock).position().top;

答案 3 :(得分:1)

我认为你没有以适当的方式选择选择器:

 var x = gCurrentBlock.css('left');
 var y = gCurrentBlock.css('top');

你已经这样添加了它:

var linksBlock = $('<div id ="' + gCurrentBlock + '" class="LinksBlock EditBlock"></div>').appendTo("#canvas");
//--------------------------------^^^^^^^^^^^^^---this is the id of the div

所以你的代码应该是:

 var x = $('#'+gCurrentBlock).css('left');
 var y = $('#'+gCurrentBlock).css('top');

答案 4 :(得分:0)

gCurrentBlock是一个变量,它只包含div的id,因此

替换此

var x = gCurrentBlock.css('left');

var x = $("#"+gCurrentBlock).css('left');

希望这会有所帮助!!