javascript - 使用 jquery 和 .change() 选择 html 元素 id

标签 javascript jquery html dom

我有几个<select>所有盒子都使用相同的前缀,我想设置一个递归函数来基本上为我完成这项工作。

$('[id^="by_"]').change(function(e)
            {
                var elem = e;
                console.log(e.value);
            });

根据这段代码我的意图很清楚吗?我走在正确的道路上吗?

控制台打印出:undefined

最佳答案

我认为您走在正确的轨道上 - 您使用的选择器与“by_”前缀匹配,并且您将更改事件绑定(bind)到所有选择器。确保将其放入 $(document).ready 或类似文件中。您对这段代码有任何问题吗?我不使用 e 参数,而是在函数内部使用 this 来引用元素,并使用 $(this) 来获取它的 jQuery 对象。因此,要获取该值,您可以使用:

this.value
// or
$(this).val()

(忽略 eelem 内容,尽管将 $(this) 存储在类似的内容中并不是一个坏主意elem 这样您就可以引用它,而不是每次需要时重新创建 jQuery 对象)

当使用 jQuery 事件回调时,回调的(第一个)参数是一个 event 对象,它解释了有关发生的事件 ( http://api.jquery.com/category/events/event-object/ ) 的许多事情,并且不保存元素- 这就是 this 的用途!

关于javascript - 使用 jquery 和 .change() 选择 html 元素 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12959357/

相关文章:

javascript - 下载本地文件

javascript - d3.js : sort nested arrays

jquery - 如何设置 jquery 选项卡形成 100% 高度?

javascript - 创建一个超链接,加载一个外部页面,然后是一个 javascript

html - 动画时长应该是相对于高度和宽度的

javascript - 根据 javascript 中的值重新排列数组并执行 for 循环

javascript - 无法在javascript中获取声明的变量

javascript - jQuery:如果选中则禁用 Prop

javascript - 我无法让 jQuery 插件 AnythingSlider 在 JS Bin 中工作

javascript - 使 iframe 占用垂直空间