如何使用JQuery获取元素对象?

时间:2013-08-27 23:14:10

标签: javascript jquery html dom

现在有人知道我可以使用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 个答案:

答案 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')
})