作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用为我的选择选择的 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/
我是一名优秀的程序员,十分优秀!