从以前的帖子中获取当天报价的脚本?

时间:2012-05-27 15:14:38

标签: javascript html tumblr getelementsbytagname

我花了最后4个小时试图在我的tumblr博客上为“今日报价”显示编写脚本。我是javascript的初学者。所以,请你帮我解决一下javascript并告诉我需要改变什么才能使它工作?另外,我如何能够将脚本生成的文本格式化为?:

<script type="text/javascript">
    var now = new Date();
    var todayAtMidn = new Date(now.getFullYear(), now.getMonth(), now.getDate());
    var quoteTag = getElementsByTagName("div")
    for (var i = 3; i < quoteTag.length; i++)`
    var quoteDate = document.getElementsByTagName("div");
    for (var i = 3; i < quoteDate.length; i++) {
        if ((quoteDate[i].getAttribute("class") == "date") && (quoteTag[i].getAttribute("class") == "tag")) {
            if ((todayAtMidn.getTime() == quoteDate.getTime()) && (quoteTag == 'QOT')) {
                document.write("Quote Of the Day:{Quote}")
            } else {
                document.write('Thank God, its a new day!');
            }
        } else {
            document.write('Thank God, its a new day!')
        }
    }
</script>

我试图做的是,从我的一个正常报价帖子中获取内容/文本,前提是报价帖子的标签为“QOT”并在当前日期发布(今天也是如此)。然后,文本/内容将在网站的特殊部分显示为“当天的报价”。

继承我的网站:teamnigeria.tumblr.com

1 个答案:

答案 0 :(得分:0)

好吧,让我们从:

开始
  1. 最初

    (function () {
    
    var post=null;
    
  2. 循环显示当前页面上的帖子:

    var posts=getPosts();
    var midnight_today=getMidnight();
    
    for(var i=0, l=posts.length; i<l; i++) {
    
  3. 当我们找到标记为QOT且今天发布的第一篇帖子时停止

       var post_time = getPostTime(post[i]);
       if (postHasTag(posts[i], 'QOT') && post_time > midnight_today) {
           post = posts[i];
           break;
       }
    
    }
    
  4. 如果我们找不到帖子:设置引号为“今天没有选择报价”

    if (post === null) { 
        setQuote("No quote picked for today");
    } else {
    
  5. 否则:将报价设置为我们找到的帖子的文本

        setQuote(getQuoteFromPost(post));
    }
    
    })();
    
  6. 如果定义了所有未定义的函数,这将按照您的要求执行。


    由于tumblr页面上的所有帖子都有类post,而引用帖子的类为quote,所以给出了jQuery:

    (function () {
      var quotes = $("div.post.quote");
      if (quotes.length > 0) {
        $('div#header > h8').empty().append(
          quotes.first().find("div.content > blockquote").clone()
        );
      }
    })();
    

    将每日报价替换为页面上的第一个报价,如果没有,则div#header > h8的内容仍作为占位符内容。如果这也要检查日期,则需要解析div.post.quote > div.date的内容并比较日期。