我有一个具有不同 rel 值的复选框列表。我的以下 jquery 代码给出了我的未定义。
var checked_keys=[];
$("input[type='checkbox']:checked").each(function(index, value){
checked_keys.push( value.attr('rel') );
});
但是,如果我使用“this”,它会起作用。
var checked_keys=[];
$("input[type='checkbox']:checked").each(function(){
checked_keys.push( $(this).attr('rel') );
});
谁能解释一下 .each with value 和 .each with $(this) 之间的区别?
最佳答案
在jQuery中,$.each
方法有一个回调,返回索引和DOM节点,后者是原生DOM节点,jQuery没有包裹,所以需要包裹使用像 attr()
这样的 jQuery 方法,否则你必须使用像 getAttribute('rel')
var checked_keys=[];
$("input[type='checkbox']:checked").each(function(index, value){
checked_keys.push( $(value).attr('rel') );
});
作为旁注,还有一个$.map
方法,这似乎更合适
var checked_keys = $("input[type='checkbox']:checked").map(function(index, value){
return $(value).attr('rel');
});
关于javascript - 使用 Jquery .each 获取 rel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567489/