问一下原生的js中如何得到td在tr中的索引吗?类似jQuery中的index()方法这样的?


<html>
<body>
<table>
<tr>
<td id="a">1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
</table>
<body>
<script src='http://172.29.5.201/assets/js/core/jquery.min.js'></script>
<script>
alert($("#a").index());</script>
</html>
阅读 3.3k
3 个回答
function searchIndex(id){
    //获取 td
    var td = document.getElementById("td");
    //获取所有的 td
    var arr = Array.from(td.parentNode.children);

    //遍历
    arr = arr.filter(function(item){
        return td == item;
    });
}
function getIndexFromDomOrSelector(domOrSelector){
    let dom;
    // 检查是dom还是Selector
    if(domOrSelector instanceof HTMLElement || domOrSelector instanceof Element){
        dom = domOrSelector;
    }else if(typeof domOrSelector === "string"){
        dom = document.querySelector(domOrSelector);
        if(!dom) throw new Error("selector无效,找不到dom")
    }else{
        throw new Error("参数不合法");
    }
    // 获取所有的兄弟节点
    const brothers = Array.from(dom.parentNode.children);

    return brothers.indexOf(dom);
}

// 方式1
getIndexFromDomOrSelector("#a")
// 方式2
const td = document.getElementById("a");
getIndexFromDomOrSelector(td)
新手上路,请多包涵
document.getElementById('a').cellIndex
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题