【问题标题】:How do I access a <td>'s id in a javascript function? [closed]如何在 javascript 函数中访问 <td> 的 id? [关闭]
【发布时间】:2013-10-04 07:54:17
【问题描述】:

如何制作一个 javascript 函数来提醒&lt;td&gt; 的 id?我试过了:

function test() {
  alert(document.documentElement.id); 
} 

但这没有用。

基本上,我正在使用表格在页面上制作网格,当我将鼠标悬停在表格的每个单元格上时,我希望函数告诉我单元格的 ID。我已经知道onMouseOver 的工作原理以及这些细节,但我似乎无法使该功能正常工作。

【问题讨论】:

  • 使用 jQuery,$('a').each(function () { alert('id: ' + $(this).attr('id')); });

标签: javascript html html-table


【解决方案1】:

你可以在桌子上放一个监听器:

<table onmouseover="showId(event);" ...>

然后在函数中显示鼠标悬停在表格上的任何 TD 元素的 ID:

function showId(evt) {
  var element = evt && (evt.target || evt.srcElement);

  if (element && element.tagName && element.tagName.toLowerCase() == 'td') {
    console.log(element.id);
  }
}

您可以动态附加侦听器,但您可能需要处理旧浏览器的一些次要浏览器怪癖。例如。以下将在任何正在使用的浏览器中工作(该表有一个 ID 来附加侦听器,但还有其他方法不需要 ID):

<table id="t0">
  ...


window.onload = function() {
  var table = document.getElementById('t0');
  table.onmouseover = showId;
}

function showId(evt) {
  evt = evt || window.event;
  var element = evt && (evt.target || evt.srcElement);

  if (element && element.tagName && element.tagName.toLowerCase() == 'td') {
    alert(element.id);
  }
}

【讨论】:

    【解决方案2】:

    你需要做这样的事情:

    function test() {
        var idItem = document.getElementById('id'); 
        alert(idItem);
    }
    
    test();
    

    如果你知道 id 但我做了一个例子来显示每个单元格的 id

    <!DOCTYPE html>
    <html>
    <head>
        <title>td mouseover</title>
        <script type="text/javascript">
        window.document.addEventListener('DOMContentLoaded',function(){
            var cells = document.getElementsByTagName('td');
            function showId(evt){
                alert(evt.target.id)
    
            }
    
    
            for(var i = 0; i < cells.length;i++){
    
                cells[i].addEventListener('mouseover',showId);
            }
    
    
        });
    
    
        </script>
    </head>
    <body>
    
        <table>
    
                <tr>
                    <td id="cell1">Something 1</td>
                    <td id="cell2">Something 2</td>
                    <td id="cell3">Something 3</td>
    
                </tr>
        </table>
    </body>
    </html>
    

    【讨论】:

    • 这将提醒 ID 设置为“id”的 整个元素。这似乎没有回答这个问题。
    • 问题是我事先不知道id。我有点希望函数成为 id 的函数。
    • 查看编辑后的答案,我放置了一个示例,说明如何在不使用 Jquery 的情况下做到这一点。您还可以在每个 td 标签中使用选项 onmouseover = "name_function (this);"
    • 非常感谢您提供深思熟虑的有用答案。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多