表准备好后元素的访问属性

Access attribute of elements after table ready

本文关键字:访问 属性 元素 准备好      更新时间:2023-09-26

在这里,我有html表格,单元格内有单元格和输入字段:

<tr class="google-visualization-table-tr-even google-visualization-table-tr-sel">
   <td class="google-visualization-table-td"><input id="costRedovi" vr="2013-04-01" kol="John Deer n7" class="form-control" value="0"></td>
   <td class="google-visualization-table-td"><input id="costRedovi" vr="2013-04-01" kol="Laza Lazic" class="form-control" value="0"></td>
</tr>

现在我写一个函数:

new google.visualization.events.addListener(table, 'ready', function () {
    $("#costRedovi").focusout(function() {
        console.log(this.attr('value'));

    });
});

因此,当表准备好使用焦点事件做一些事情时...但我得到:Uncaught TypeError: Object #<HTMLInputElement> has no method 'attr'表准备好时如何从输入元素中获取值?还有为什么当我把 jquery 作为 HTML 页面顶部的顶部源代码时,我不能在这里使用 jquery 函数?

我该如何解决这个问题?

我到底需要什么?当谷歌可视化表准备好获取 jquery .focusout事件并从该输入字段中获取一些属性时,ID=costRedovi...

可能吗?

你需要像这样将this包装到 jQuery 包装器中:

console.log($(this).attr('value'));

标准的Javascript API不包含像attr这样的od方法,this是普通的javascript对象 - 它不包含jQuery方法。这就是为什么您需要将其包装在 $() .您也不能有多个同名的 ID。id 在整个 HTML 文档中应该是唯一的。在大多数情况下,Javascript无法正确处理它。您应该删除focusout事件侦听器并直接获取值(但在确保您的 id 是唯一之后),例如:

    console.log($('#costRedovi1').attr('value'));
    console.log($('#costRedovi2').attr('value'));