如何无需点击操作,通过类选择器获取元素ID?
正确获取类选择器对应元素ID的实现方式
嘿,我来帮你修正这段代码——你现在的写法有两个关键问题:一是attr()方法没传要获取的属性名,二是没有事件上下文的情况下this.id根本指向不到目标元素。不用点击操作的话,直接通过类选择器选中元素后就能拿到ID,具体分两种情况处理:
单个匹配元素的情况
如果页面中只有一个带.type_selected类的元素,直接用下面的代码就能获取它的ID:
// 方法1:使用attr() var type_selected = $('.type_selected').attr('id'); // 方法2:更推荐的prop()(对于原生属性,prop比attr更可靠) var type_selected = $('.type_selected').prop('id'); // 方法3:直接取DOM元素的id属性,性能最优 var type_selected = $('.type_selected')[0].id;
多个匹配元素的情况
如果页面中有多个带这个类的元素,你需要遍历它们来收集每个元素的ID:
// 方式1:用each()遍历,把ID存入数组 var typeIds = []; $('.type_selected').each(function() { // 这里的this就是当前遍历到的DOM元素,直接取id即可 typeIds.push(this.id); }); // 方式2:用map()方法更简洁 var typeIds = $('.type_selected').map(function() { return this.id; }).get(); // 记得调用get()把jQuery对象转成普通数组
简单说,核心就是不用依赖点击事件,直接通过类选择器选中元素后,要么直接取单个元素的ID,要么遍历多个元素收集ID,这样就完全符合你“无需点击操作”的需求啦。
内容的提问来源于stack exchange,提问作者Ahmed Itos
相关产品推荐
相关产品推荐

