$(document).ready(function()
{
mais_telefones();
upload_imagens();
});
function mais_telefones()
{
mais_telefones.click(function(event)
{
var label = input = button = null,
labels = $('.telefones'),
tamanho = labels.length;
event.preventDefault();
if (tamanho < 3)
{
label = $('<label for="elemento' + tamanho +
'" class="telefones elemento' +
tamanho + '">Telefone</label>');
input = $('<input id="elemento' + tamanho +
'" class="elemento' +
tamanho + '"type="text" name="telefones[]" />');
button = $('<button class="elemento' + tamanho + '">X</button>');
button.click(function(event)
{
event.preventDefault();
$('.elemento' + tamanho).remove();
});
label.insertBefore($(this));
input.insertBefore($(this));
button.insertBefore($(this));
}
});
}
function upload_imagens()
{
var imagem = $('#imagem');
imagem.change(function(event)
{
alert($(this).files);
});
}
在mais_telefones
函数中,我可以使用$(this)
,附加元素(appendChild
),insertBefore
等。但是在第二个函数中,我不能。 $(this).files
返回未定义,但this.files
返回值...怎么了?
您必须将$(this)
传递给各个功能
例如:
mais_telefones($('div'));
以及在mais_telefones函数中:
function mais_telefones(sel){
this = sel.get(0);
...
}
jquery始终返回jquery对象的数组。您可能想要这样:
$(this)[0].files;
jQuery: What's the difference between '$(this)' and 'this'?这可能会对您有所帮助。请问双关语:P