Javascript 如何在jquery选择的更改事件上遍历dom树

Javascript 如何在jquery选择的更改事件上遍历dom树,javascript,jquery,jquery-chosen,Javascript,Jquery,Jquery Chosen,我使用jQuerySelected进行选择,我需要在更改时更改一些字段。这是我的更改代码,可以使用: j(".address").chosen().change(function(evt, value) { console.log(evt); address_id = value.selected; }); 如果我将evt变量记录到控制台,我可以看到它有一个名为currentTarget的属性,该属性似乎指向已隐藏的原始select元素。如果我这样做: evt.currentT

我使用jQuerySelected进行选择,我需要在更改时更改一些字段。这是我的更改代码,可以使用:

j(".address").chosen().change(function(evt, value) {
    console.log(evt);
    address_id = value.selected;
});
如果我将evt变量记录到控制台,我可以看到它有一个名为currentTarget的属性,该属性似乎指向已隐藏的原始select元素。如果我这样做:

evt.currentTarget.remove();
evt.currentTarget.parents('.form-group').remove();
Uncaught TypeError: undefined is not a function
正如我所期望的那样,这将从DOM中删除select,从而显示该对象确实与select框相关。因此,如果我尝试遍历DOM,而不是使用该对象作为起点,我只会得到错误。例如,如果我执行以下操作:

evt.currentTarget.remove();
evt.currentTarget.parents('.form-group').remove();
Uncaught TypeError: undefined is not a function
它只是出现了以下错误:

evt.currentTarget.remove();
evt.currentTarget.parents('.form-group').remove();
Uncaught TypeError: undefined is not a function
理想情况下,我想这样做:

evt.currentTarget.parents('.form-group').next('.form-group').find('.address').val("some data")

请不要建议只使用ID,因为这对我试图构建的内容不起作用。我想要一个通用解决方案,即使在同一页面上有多个实例,它也能与类一起工作。

evt.currentTarget
是一个节点,它没有与jQuery元素相同的API,但有一个
删除
方法


在jQuery中封装它,就像在您的情况下jQuery似乎是
j一样。

您不能从不存在的元素进行遍历。您正在删除
currentTarget
之后将如何定义它。如果您必须删除它,请在使用完之后再删除。抱歉,我认为您误解了,我并不是真的要删除它,我只是用它作为一个例子来说明使用remove()函数可以工作,因此对象显然与正确的元素相关。啊,这样做更有意义:)但我认为
evt.currentTarget
不是一个jQuery对象,而是一个节点对象,它也有
remove
方法,但不会有
父对象,因为它只是jQuery。试试
$(evt.currentTarget)
。是的,这很有效,谢谢:-)我可以在4分钟内接受你的答案