2016-10-14 3 views
1

Для этого сегмента кода:Нужна помощь в понимании JQuery синтаксиса

for (var i = 0; i < numbers.length; i++) { 
     var imageCrystal = $('<img>'); 
     imageCrystal.attr('data-num', numbers[i]); 
     .... 
    } 

есть, imageCrystal.attr('data-num', numbers[i]); делает атрибут данных для тега изображений, который был только что создан и дает ему имя класса под названием "data-num", а затем назначая независимо от значения находится в number[i]?

+1

атр создает атрибут в элементе. Атрибуты с префиксом 'data-' - это вещь HTML5 для хранения данных в элементе. Поэтому, если 'numbers [i]' равно 3, это создало бы элемент 'imageCrystal', который выглядит как' '. Атрибуты данных также могут быть доступны с помощью функции 'data' jQuery, поэтому' imageCrystal.data ("num") 'должен возвращать 3. – Mogzol

+1

Стоит отметить, что последняя строка может быть записана как' imageCrystal.data ('num', numbers [i]); 'также, если вы используете метод [' data() ') (http://api.jquery.com/data/). – DavidG

+0

@DavidG haha, просто добавил мое правое право, когда вы разместили это. – Mogzol

ответ

5

Проще говоря

imageCrystal.attr('data-num', numbers[i]); является сеттер

imageCrystal.attr('data-num'); является газопоглотитель

Если var numbers = [100, 200, 300] и если img теги добавляются к DOM, это будет выглядеть в этих строках ,

<img data-num="100" /> 
<img data-num="200" /> 
<img data-num="300" /> 

Подробнее: http://api.jquery.com/attr/

+0

Благодарим вас за разъяснение. Я новичок в jquery и все еще пытаюсь понять синтаксис jquery. – henhen

Смежные вопросы