现在有人知道我可以使用JQuery获取元素对象吗?
例如: 我有以下代码将元素对象传递给函数
HTML:
<table>
<tr>
<td>
<input type='text' ID='test' onchange='test(this)' />
<input type='text' ID='test_1' onchange='test(this)' />
<input type='text' ID='test_2' onchange='test(this)' />
<input type='text' ID='test_3' onchange='test(this)' />
</td>
</tr>
</table>
JavaScript的:
function test(obj) {
var parent = $($($(obj).parent()).parent()).parent();
}
不是通过html(onchange ='test(this)')传递对象,而是通过使用输入ID在函数中使用jquery捕获对象的任何方式?
答案 0 :(得分:1)
只要脚本在元素存在后执行(例如:onload或身体末尾),您就可以完全从HTML中删除onchange
属性并执行:
$('#test').change(function(){
// `this` refers to the input element
var parent = $(this).parents().eq(2); //.parents needs backets
});
答案 1 :(得分:1)
已编辑及更新
啊,我想我现在明白你了......<强> HTML 强>
<table>
<tr>
<td>
<input type='text' ID='test' />
</td>
</tr>
</table>
<强>的jQuery 强>
$(function() {
var obj;
$('#test').on('change',function() {
obj = this; // from this point on, obj is your INPUT
var v = this.val(); // v is now the value of the INPUT (what was typed)
obj = this.closest('table'); // obj is now the TABLE
obj = this.closest('tr'); // obj is now the ROW
});
});
答案 2 :(得分:0)
您可以传递“id”属性来获取javascript / DOM元素,如下所示:
function test(obj) {
var parent = $(obj).parent().parent().parent()[0];
//do something here
}
答案 3 :(得分:0)
不使用onchange
属性添加事件处理程序,而是使用jQuery使用.change()
$('table').on('change', 'input[type="text"]' function(){
//here this points to the text element
var $tr = $(this).closest('tr')
})