试图模仿*这个*对象,而不是工作

时间:2016-06-20 17:26:40

标签: function this

我有一个包含列和行的表,单元格有一个onclick处理程序。

<tr name="row1">
    <td name="col1" onclick="f1(this)">
    <td name="col2" onclick="f1(this)">
    <td name="col3" onclick="f1(this)">
</tr>

函数f1将单元格标记为用户选择的单元格。这一切都按预期工作。我试图添加功能,如果用户已保存选择,然后返回到表单,我可以预先选择用户保存的正确单元格。所以我编写了这个函数,我可以从数据库中调用rowcol的值。

function f2 (row, col) {
    f1( $( 'tr[name=row'+row+']' ).find( 'td[name=col'+col+']' ) );
}

唯一的问题是,它不起作用。如果我构造完整的字符串,例如,

f1( $( 'tr[name=row1]' ).find( 'td[name=col2]' )[0])

然后它工作得很好。但它在页面中不起作用,我猜测它与参数的错误引用有关,但我无法弄清楚如何正确地进行。如何构建f1的编程调用?

1 个答案:

答案 0 :(得分:0)

<!doctype html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Titel</title>
    <script>
        function f2 (self) {
            var col = self.attributes["name"].value;
            var row = self.parentNode.attributes["name"].value;
            alert(row + " " + col);
            // do what you want
        }
    </script>
  </head>
  <body>
    <table>
        <tr name="row1">
            <td name="col1" onclick="f2(this);">test1</td>
            <td name="col2" onclick="f2(this);">test2</td>
            <td name="col3" onclick="f2(this);">test3</td>
        </tr>
    </table>
  </body>
</html>