javascript - 如何访问 HTML 表中元素的属性?

标签 javascript html

我正在尝试获取除 TR 和 TD 之外的 html 元素并获取它们的 ID 属性。奇怪的是,当我尝试使用警报功能通过 document.getElementById("someId") 获取元素时,会出现一些内容。但是当我捕获元素并使用对 id 的直接调用时,它告诉 undefined。

这是我在 JSFiddle 中的代码 http://jsfiddle.net/ss7ykqyh/

示例 HTML:

    <tr>
        <td> <input id="button1" /> </td>
        <td> <input id="button2" /> </td>
    </tr>

    <tr>
        <td> <input id="button3" /> </td>
        <td> <input id="button4" /> </td>
    </tr>

</table>


<input value="clone me!" type="button" id="btnCloneMe" onclick="myFunction()" />

我的脚本:

function myFunction() {

    var table = document.getElementById("table1");
    var rows = table.rows;


    for(var i = 0; i < rows.length; i++){
        var noOfCells = rows[i].cells.length;
        alert("no of cells: " + noOfCells);

        for(var j = 0; j < noOfCells; j++){

            var cell = rows[i].cells[j].innerHTML;
            alert("inside cell: " + cell.id);

            var element = document.getElementById("button1");
            alert(element.id);

        }

    }



}

这是一种方法,我也在想是否有更好的方法来捕获除 TD 和 TR 之外的所有 html 元素

此外,仅发布 JSFiddle url 是否违规,或者我是否需要直接在查询中发布代码? 谢谢并致以诚挚的问候!

最佳答案

innerHTML 返回一个字符串,而不是一个对象,因此它没有 ID 属性

var cell = rows[i].cells[j].innerHTML;
alert("inside cell: " + cell.id);

看看cell如何是一个字符串

您可以删除 innerHTML 调用,但单元格没有 ID?

var cell = rows[i].cells[j]; // returns empty string ?

我猜您想要按钮的 ID,然后您必须先找到它们,一种方法是使用 querySelector

var cell = rows[i].cells[j].querySelector('input');

FIDDLE

关于javascript - 如何访问 HTML 表中元素的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25889319/

相关文章:

html - 如何在 slider 中使用中继器

javascript - 如何根据多个框中的选择启用/禁用复选框

javascript - 在 javascript 中搜索对象键值时使用正则表达式

javascript - ExpressJS 是否遵循 MVC 模式?

javascript - ZF2 : How to call a view helper in a service?

html - 如何呈现 report.rdlc 中的格式化文本(及其格式)

javascript - Div 父级不会随内容自动调整高度

javascript - 通过jquery从文本框中获取值

html - 如何在类似 metro 的 web GUI 中定位图标? (包括图像)

html - normalize.css 和 block 元素的垂直边距