我已经教了我自己的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>');
});
});
我使用的示例代码将select中的值附加到提交的表单中,而这些值不属于表单。
因为它$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>');
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句