Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2014, 16:01
Интересующийся
Отправить личное сообщение для oxxy Посмотреть профиль Найти все сообщения от oxxy
 
Регистрация: 05.12.2013
Сообщений: 20

Зачем указывать индекс после селектора $('files')[0]
Добрый день!

Изучаю ajax с jquery;
Есть html


<p>Загрузите фото <input type='file' id="fileinput"/></p>
                   <p id="upload_pic_action">Загрузить </p>


У инпута id='fileinput';

Вот js (ajax)
$(document).ready(function(){


$( '#upload_pic_action' ).click(function ( ) {
    var data;

    data = new FormData();
    data.append( 'file', $( '#fileinput' )[0].files[0] );/*находим загруженный файл. 

    $.ajax({
        url: 'add_project_1.php',
        data: data,
        processData: false,
	contentType:false,
        type: 'POST',
        success: function ( data ) {
            alert( data );
        }
    });


});

});


С
files[0]
все понято .,у инпута с типом file есть массив files[].Первый загруженный элемент имеет индекс[0];

Но зачем к ID $( '#fileinput' )[0] добавлять индекс [0],элемент ведь один.

Если убрать индекс,тоесть так
data.append( 'file', $( '#fileinput' ).files[0] )
то отправка не работает.Сервер ничего не выдает ..даже ошибку.

На обычном js если делать , также никаких индексов не делал и все работает

var file=document.getElementById('fileinput');
 data = new FormData();
data.append('filename',file.files[0];
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2014, 16:09
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

попробуй открыть консоль и посмотреть чем отличаются
console.dir ( $( '#fileinput' )[0] )
и
console.dir ( $( '#fileinput' ) )
Ответить с цитированием
  #3 (permalink)  
Старый 08.09.2014, 16:35
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

$( x ) - это функция jquery, которая возвращает объект jquery, со своими свойствами и методами. К чистому js и DOM он относится лишь косвено.
$( x )[0] - под ключом 0 в объекте jquery хранится ссылка на нативный элемент DOM.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
зачем в классе указывать сразу много классов? linklee Элементы интерфейса 2 28.07.2013 14:44
вернуть индекс селектора ArmagedDance jQuery 1 15.12.2011 09:56