jQuery .each()索引值

Dim*_*imt 7 javascript jquery

我已经教了几个月的自我JavaScript和jQuery,但我仍然对JavaScript对象和jQuery对象感到困惑.

在下面的示例中,我为变量分配了一个jQuery对象$target.的$target应包括两个对象的阵列.

我的问题是为什么我必须将value变量再次包装到.each()函数中的jQuery对象中?

$('select.to_append').change(function(){
    var $target = $('select.to_append');
    var $form = $('#anotherForm');

    $.each($target, function(key, value){
        $form.append('<input name="' + $(value).attr('name') + '" type="hidden" value="' + $(value).val() + '"></input>');
    });
});
Run Code Online (Sandbox Code Playgroud)

我用来附加选项中的值的示例代码,这些值不是正在提交的表单的一部分;

Aru*_*hny 8

因为它$target是一个jQuery对象,但是当你迭代时,你将在迭代处理程序中得到一个dom元素引用而不是jQuery对象.因此,如果要访问该对象上的jQuery方法,则需要再次包装该对象.

顺便迭代jQuery对象,你可以使用.each()而不是jQuery.each()

$('select.to_append').change(function () {
    var $target = $('select.to_append');
    var $form = $('#anotherForm');

    $target.each(function (index, el) {
        $form.append('<input name="' + $(el).attr('name') + '" type="hidden" value="' + $(el).val() + '"></input>');
    });
});
Run Code Online (Sandbox Code Playgroud)