1

现在有谁知道我可以使用 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来捕获对象吗?

4

4 回答 4

1

只要您的脚本在元素存在后执行(例如:onload 或在正文的末尾),您就可以onchange从 HTML 中完全删除该属性并执行以下操作:

$('#test').change(function(){
    // `this` refers to the input element
    var parent = $(this).parents().eq(2); //.parents needs backets
});
于 2013-08-27T23:21:21.003 回答
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
    });
});
于 2013-08-27T23:21:36.523 回答
0

您可以传递“id”属性来获取 javascript/DOM 元素,如下所示:

function test(obj) {
  var parent = $(obj).parent().parent().parent()[0];
  //do something here
}
于 2013-08-27T23:17:39.160 回答
0

不要使用onchange属性来添加事件处理程序,而是使用 jQuery 使用 .change() 来注册它

$('table').on('change', 'input[type="text"]' function(){
    //here this points to the text element
    var $tr = $(this).closest('tr')
})
于 2013-08-28T00:35:42.317 回答