如何使用JQuery获取元素对象

How to get the element object by using JQuery?

本文关键字:元素 对象 获取 JQuery 何使用      更新时间:2023-09-26

现在有人知道我可以使用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();
}

我可以通过使用输入ID在函数中使用jquery来捕获对象,而不是从html传递对象(onchange='test(this)')?

已编辑并更新

啊,我想我现在明白你了。。。。

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
    });
});

只要在元素存在后执行脚本(例如:onload或在主体末尾),就可以从HTML中完全删除onchange属性,并执行:

$('#test').change(function(){
    // `this` refers to the input element
    var parent = $(this).parents().eq(2); //.parents needs backets
});

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

function test(obj) {
  var parent = $(obj).parent().parent().parent()[0];
  //do something here
}

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

$('table').on('change', 'input[type="text"]' function(){
    //here this points to the text element
    var $tr = $(this).closest('tr')
})