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

时间:2014-03-31 23:23:44

标签: javascript jquery html

这里我有一个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'));


    });

});

所以当table准备好用focusout事件做一些时...但我得到:Uncaught TypeError: Object #<HTMLInputElement> has no method 'attr'当表准备就绪时我如何从input元素中获取值?当我把jquery作为HTML页面顶部的顶级源代码时,为什么我不能使用jquery函数呢?

我如何解决这个问题?

我到底需要什么? 当谷歌可视化表准备好获取jquery .focusout事件并从ID = costRedovi ...

的输入字段中获取一些属性时

有可能吗?

1 个答案:

答案 0 :(得分:2)

你需要将this包装成jQuery包装器,如下所示:

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

标准Javascript API不包含od方法,例如attrthis是普通的javascript对象 - 它不包含jQuery方法。这就是你需要将它包装在$()中的原因。 您也不能拥有多个具有相同名称的ID。 id应该在整个html文档中是唯一的。在大多数情况下,Javascript不会正确处理它。您应该删除focusout事件侦听器并直接获取值(但在确保您的ID将是唯一的之后),例如:

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