2014-03-31 276 views
0

在這裏我有一個內部的電池單體電池和輸入字段的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'當表準備好後,我怎麼能從input元素中獲取值?另外爲什麼我不能在這裏使用jquery函數,當我把jQuery作爲HTML頁面頂部的頂級源?

我該如何解決這個問題?

我到底需要什麼? 當谷歌的可視化表準備取的jQuery .focusout事件與ID = costRedovi獲得從輸入字段某些屬性...

這可能嗎?

回答

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')); 
+0

雖然這將解決的jQuery的正確用法不回答*在表格加載*問題(fyi)上。 –

+0

你完全正確。更新我的回答 – lukaleli

+0

嗯,不是真的我需要,但感謝您的幫助 – gmaestro