Javascript 按数据id查找元素并获取左侧样式

Javascript 按数据id查找元素并获取左侧样式,javascript,jquery,html,css,Javascript,Jquery,Html,Css,因此,与其硬编码我的fillRect,我希望它直接从region标记获取左侧样式。如果它有一个id,我会这样做: var testIdLeft = document.getElementById("testId").style.left fillRect(testIdLeft, 0, 100, 20) 所以它看起来像这样: var testIdLeft = document.getElementById("testId").style.left fillRect(testIdLeft, 0

因此,与其硬编码我的fillRect,我希望它直接从region标记获取左侧样式。如果它有一个id,我会这样做:

var testIdLeft = document.getElementById("testId").style.left
fillRect(testIdLeft, 0, 100, 20)
所以它看起来像这样:

var testIdLeft = document.getElementById("testId").style.left
fillRect(testIdLeft, 0, 100, 20)
但是我不知道如何使用数据属性,我想它是被调用的。So我想做的是从每个区域标记中获取左侧样式,并将其输入到我的fillRects中。

var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
ctx.fillStyle=“#FF0000”;
ctx.fillRect(38,0100,20);
var ctz=c.getContext(“2d”);
ctz.fillStyle=“FF0000”;
ctz.fillRect(100,22,100,20)
画布{
左边距:-8px;
}

您可以使用jquery根据元素的数据属性获取元素,例如:

$("[data-id='" + id + "']")
然后,您可以使用
.get(0)
来获取jquery对象的DOM版本,这允许您像以前一样使用“纯”javascript:

$("[data-id='" + id + "']").get(0).style.left;
问题中的代码示例:

$("[data-id='1']").get(0).style.left;
或者,您可以使用jquery:

$("[data-id='" + id + "']").position().left;
$("[data-id='" + id + "']").offset().left;

您是否使用
位置
偏移量
,取决于您的要求,请查看文档以了解更多信息:

您可以通过数据id:$(“[data id=”+YourId+“]”)查找元素;您能否将“testId”的html包括在数据属性中。“myCanvas”内容与问题的相关性不清楚。@CyrilIselin以及如何获取左侧属性?@freedomn-m您需要在其中绘制canvas请检查代码段。我只是举了一个testId的例子…谢谢,这很有效。有没有办法只知道数字?因为
$(“[dataid='1']”)。get(0.style.left给我“38px”。Ofc我可以使用子字符串(0,2),但如果它像100px,它就不能工作。你试过这两种方法吗?或者您可以使用
parseInt(val,10)
忽略“px”