Как сделать правильно и красиво ?
В общем есть код:
$.getJSON("https://spreadsheets.google.com/feeds/list/" + spreadsheetID + "/od6/public/values?alt=json", function(data) { $(data.feed.entry).filter(function(){ if(this.gsx$slag.$t===location.pathname) return $('section').prepend('<header><h2>'+this.gsx$title.$t+'</h2></header><img src="'+this.gsx$image.$t+'"/><p>'+this.gsx$content.$t+'</p>').exit(); }); $(data.feed.entry).each(function(){ $('section').prepend('<article class="'+this.gsx$type.$t + '"><header><h2>' + this.gsx$title.$t + '</h2></header><img src="'+ this.gsx$image.$t +'"/></article>'); }); }); Он конечно работает, но выглядит стремно ( Подскажет кто как сделать покрасивей? |
Цитата:
Напихать в имена свойств помимо $ еще чего-то. :D |
jq.filter как-то криво используется, по-моему.
Что делает функция "text" - загадка такая же как и тип объекта "data.feed.entry". |
Про text() забудем, а data.feed.entry массив массивов object
Цитата:
|
WqR128, а что-за метод "delete" вы используете в строке 3?
|
Nexus, согласен exit() выглядит уместнее
|
WqR128, зачем ты $ в имена свойств наставил?
|
ksa, ну мне $ не нужен, но гугла такие переменные
|
Цитата:
|
Nexus, да
|
WqR128, а в jq есть методы "delete" и "exit"?)
|
Nexus , () по вашему мнению лучше ?)
|
WqR128, что вы вообще пытаетесь сделать используя метод "filter"?
|
Nexus , ок если красивее то пусть будет "each"
|
WqR128, :-?
Я вроде бы не говорил, что что-то в коде у вас "некрасиво", а спросил что вы пытаетесь сделать... |
Фильтр просто так.... Лично меня коробит, что надо делать 2 прогона массива
|
Цитата:
Может лучше так сделать? $.getJSON("https://spreadsheets.google.com/feeds/list/" + spreadsheetID + "/od6/public/values?alt=json", function(data) { var html=[]; $(data.feed.entry).each(function() { if (this.gsx$slag.$t === location.pathname) html.push( '<article class="' + this.gsx$type.$t + '"><header>' +'<h2>' + this.gsx$title.$t + '</h2>' +'</header><img src="' + this.gsx$image.$t + '"/></article>' ); }); $('section').prepend(html.reverse().join('')); }); |
М.Б. как-то в таком стиле? (строки 13-24)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <section></section> <script> var test = { gsx$type:{$t:'testclass'}, gsx$title:{$t:'Test Title'}, gsx$image:{$t:'http://javascript.ru/cat/list/donkey.gif'} }; $('section').html('test content'); var art = $('<article/>', { class: test.gsx$type.$t, html: $('<header/>', { html: $('<h2/>', { text: test.gsx$title.$t }) }) , }); art.append( $('<img/>', { src: test.gsx$image.$t })) art.prependTo($('section')); </script> |
Цитата:
|
Часовой пояс GMT +3, время: 12:30. |