0

在过去的 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

4

1 回答 1

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));
    }
    
    })();
    

如果定义了所有未定义的函数,这将满足您的要求。


由于 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并比较日期的内容。

于 2012-05-27T16:53:22.163 回答