在jQuery中双重包装元素

在jQuery中双重包装元素,jquery,Jquery,先生们 我已经在jQuery中双重包装我的元素有一段时间了(请参见第3行-$($unitUsers[I])部分),这样我就可以对每个元素调用更多的jQuery函数 var $unitUsers = $('li.unit_user'); for(var i=0; i< $unitUsers.length; i++) { var id_str = $($unitUsers[i]).attr('id'); var$unitUsers=$('li.unit

先生们

我已经在jQuery中双重包装我的元素有一段时间了(请参见第3行-$($unitUsers[I])部分),这样我就可以对每个元素调用更多的jQuery函数

var $unitUsers = $('li.unit_user');
        for(var i=0; i< $unitUsers.length; i++) {
            var id_str = $($unitUsers[i]).attr('id');
var$unitUsers=$('li.unit_user');
对于(变量i=0;i<$unitUsers.length;i++){
var id_str=$($unitUsers[i]).attr('id');

但是现在看来必须有一种更干净的方法。我说的对吗?

好吧,很难从显示的3行中分辨出还有什么其他的变化。但是如果有一个jquery对象的索引与一组元素相匹配,那么结果就是原生元素

$('li.unit_user').each(function(){
   alert($(this).attr('id'));
});
也就是说,这是有效的

var id_str = $unitUsers[i].id;
如果您还需要访问完整的jQueryAPI,并且不希望“双重包装”,那么可以使用

var$unitUsers=$('li.unit_user');
对于(变量i=0;i<$unitUsers.length;i++){
var id_str=$unitUsers.eq(i).attr('id');
您可以这样使用:

var $unitUsers = $('li.unit_user');
$unitUsers.each(function() {
    var id_str = $(this).attr('id');
});

这是一个很大的警告:D为什么不使用本机api?
this.id
@TravisJ OP应该看到输出,这是一种让他确定这些输出是他想要的方法。我过去使用jquery$(this.attr('id'),就是这样:)谢谢。每个都是一个很好的选择,但我还需要调用.eq函数用于其他目的。
var $unitUsers = $('li.unit_user');
$unitUsers.each(function() {
    var id_str = $(this).attr('id');
});