2013-11-25 1 views
2

В моем следующем коде я получаю дату параметра в этой переменной из Feedburner {shortBodyPlain}, теперь мне нужно подстроить это, чтобы получить дату и месяц, как мне ее достичь? Кроме того, как использовать переменную {date}, {title} в jquery?SubString не работает в RSS-канале JQuery

<script language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script type="text/javascript" src="http://sdepold.github.io/jquery-rss/src/jquery.rss.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
     $("#events").rss("http://feeds.feedburner.com/google/lkRN", { 
      limit: 4, 
      layoutTemplate: '<span id="entries">{entries}</span>', 
      entryTemplate: '{date} <a href="{url}">{title}</a><br>' 
     }).show(); 
    }); 
</script> 
<div id="events"></div> 
+0

Я запускаю скрипку здесь, на http://jsfiddle.net/AFHfn/101/ – Chanakya

+0

Что значит, вам нужна дата и месяц? Вы хотите использовать их в качестве переменных js где-то на этой странице? –

+0

Мне нужно получить дату, месяц и статус и т. Д. Из этой переменной. Да, я также должен использовать их как переменные JS. – Chanakya

ответ

1

Вы можете попробовать «обман» свой путь там, добавив маркер, который делает (почти) " ничего".

Например, давайте создадим токен {alert-date}.

$("#events-output").rss("http://feeds.feedburner.com/google/lkRN", { 
    limit: 4, 
    tokens: { 
     'alert-date': function (entry, tokens) { 
      alert(tokens.date); 
      return ''; 
     }, 
    }, 
    layoutTemplate: '<span id="entries">{entries}</span>', 
    entryTemplate: '{date} <a href="{url}">{title}</a><br>{alert-date}' 
}).show(); 

Таким образом вы создаете функцию, которая генерирует содержимое токена каждый раз, когда генерируется строка. Вы возвращаете пустую строку, поэтому токен исчезает из выходного содержимого, но код из функции фактически запускается. Вы можете поместить маркер в любом месте вашего шаблона - он всегда будет пустым. Помните, что вместо того, чтобы предупреждать содержимое переменной tokens.date, вы можете сохранить их где-нибудь для дальнейшего использования.

Пожалуйста, запустите console.log(tokens) внутри вашей функции токена - вы можете увидеть все содержимое токенов, и вам не нужно разбирать html, как кто-то другой.

Посмотрите на скрипку: http://jsfiddle.net/w6zAf/


Как получить больше информации от даты?

Вы можете создать дату из своего XML. Это легко в javascript, так как он выполняет всю работу за вас. Вместо того, чтобы писать alert(tokens.date) в коде выше, вы можете создать новую дату объект, который делается так:

var date = new Date(tokens.date); 
var month = date.getMonth(); 

Подробнее здесь: http://www.w3schools.com/jsref/jsref_obj_date.asp


Создать маркер месяц и день

$("#events-output").rss("http://feeds.feedburner.com/google/lkRN", { 
    limit: 4, 
    tokens: { 
     'month': function (entry, tokens) { 
      var date = new Date(tokens.date); 
      return date.getMonth(); 
     }, 
     'day': function (entry, tokens) { 
      var date = new Date(tokens.date); 
      return date.getDay(); 
     }, 
    }, 
    layoutTemplate: '<span id="entries">{entries}</span>', 
    entryTemplate: '{date} <a href="{url}">{title}</a><br>' 
}).show(); 
+0

Спасибо за скрипку, но у меня есть вопрос, что означают токены, которые используются в вашем коде? Я никогда не слышал о них. Кроме того, мне нужно использовать ** подстроку ** в ** переменных **, например {date} в коде под _entryTemplate: _ – Chanakya

+0

Я объяснил, что это всего лишь «чит», этот токен {дата предупреждения } создается мной. Это вариант для вас, чтобы создать некоторые настраиваемые маркеры. Если вы хотите создать токен, называемый месяц, то это не сложно - просто взгляните на мое последнее редактирование. –

+0

Кстати, пожалуйста, прочитайте о шаблонах и о том, как их использовать, потому что, по-видимому, вы не понимаете, что '{date}' и '{url}' и т. Д. Не являются переменными. –

0

вы можете получить значение {даты}, {название} следующим образом в ЯШ:

var d = '{date}'; 
var t= '{title}'; 
+0

Я уже пробовал, но это не работает. – Chanakya