$(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返回undefined但this.files返回值......出了什么问题?
谢谢。
答案 0 :(得分:0)
你必须将$(this)
传递给各个函数
例如:
mais_telefones($('div'));
并在mais_telefones函数中:
function mais_telefones(sel){
this = sel.get(0);
...
}
答案 1 :(得分:0)
jQuery: What's the difference between '$(this)' and 'this'?这可能对你有帮助。原谅双关语:P
答案 2 :(得分:0)
jquery总是返回一个jquery对象数组。你可能想要这个:
$(this)[0].files;