首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从nodename和nodeindex获取html对象

从nodename和nodeindex获取html对象
EN

Stack Overflow用户
提问于 2015-05-02 06:30:15
回答 1查看 43关注 0票数 1

我正在尝试通过nodeName和nodeIndex获取html元素的位置。不过,我目前通过从数据库传递节点名和索引来使用它……(见下文)

代码语言:javascript
复制
    $thing = $("BUTTON").eq(1);
    thisLeft = $thing.offset().left;
    thisTop = $thing.offset().top;
    x_left = thisLeft + x_coord
    y_top = thisTop + y_coord

我想使用下面的函数,当我传递对象时,它在onclick上工作,因为它的准确性,即使它在父元素中,也可以获得位置。是否可以像我的$("BUTTON").eq(1)示例那样传入节点名和节点索引(我在数据库中有),以从以下函数返回准确的x和y……

代码语言:javascript
复制
function findPos(obj) {
var curleft = 0, curtop = 0;
if (obj.offsetParent) {
    do {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
    } while (obj = obj.offsetParent);
    return { x: curleft, y: curtop };
}
return undefined;
 }

单击处理程序中的此函数输出正确的x和y...

代码语言:javascript
复制
var pos = findPos(e);
        var x = e.pageX - pos.x;
        var y = e.pageY - pos.y;
        var coordinateDisplay = "x=" + x + ", y=" + y;
        console.log(coordinateDisplay);
EN

回答 1

Stack Overflow用户

发布于 2015-05-02 06:53:36

HTML5允许数据标记属性,您可以在JQuery here中阅读到该属性。

当您从数据库生成节点时,您可以执行如下操作

代码语言:javascript
复制
<div class="node" data-nodeName="ImANode" data-nodeIndex="0" ></div>

然后,您可以使用以下命令选择每一个

代码语言:javascript
复制
$("div[data-nodeName='ImANode'][data-nodeIndex='0']")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29996091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档