javascript - 如何在jquery选择更改事件上遍历dom树

标签 javascript jquery jquery-chosen

我正在使用为我的选择选择的 jQuery,并且我需要在更改时更改一些字段。这是我有效的更改代码:

j(".address").chosen().change(function(evt, value) {
    console.log(evt);
    address_id = value.selected;
});

如果我将 evt 变量记录到控制台,我可以看到它有一个名为 currentTarget 的属性,该属性似乎指向已隐藏的原始选择元素。如果我执行以下操作:

evt.currentTarget.remove();

这会按照我的预期从 DOM 中删除选择,以便表明该对象确实与选择框相关。因此,如果我尝试遍历 DOM,而不是使用该对象作为起点,我只会收到错误。例如,如果我执行以下操作:

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,但具有 remove 方法。

将其包装在 jQuery 中,就像 j(evt.currentTarget) 一样,因为 jQuery 在您的情况下似乎是 j

关于javascript - 如何在jquery选择更改事件上遍历dom树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25078322/

相关文章:

javascript - 带/不带选择器参数的 jquery 和 jquery 委托(delegate)有什么区别?

javascript - 我的登录页面的 jquery 验证不起作用

html - chosen-select 在页脚后创建巨大的空白

javascript - Jquery Chosen 插件 - 通过 Ajax 动态填充列表

javascript - 如何让标签填充到“选择”下拉列表中?

javascript - 选项卡的重定向不起作用

javascript - 如果将项目放入数组并排序,则确定项目的潜在索引。

javascript - 循环setTimeout

javascript - Typescript - 找不到名称 'fetch'(通用库)

javascript - HighCharts 删除堆栈总数